diff --git a/java/main.tf b/java/main.tf deleted file mode 100644 index ac8e4d8..0000000 --- a/java/main.tf +++ /dev/null @@ -1,282 +0,0 @@ -terraform { - required_providers { - coder = { - source = "coder/coder" - } - docker = { - source = "kreuzwerker/docker" - } - } -} - -locals { - username = data.coder_workspace_owner.me.name -} - -variable "docker_socket" { - default = "" - description = "(Optional) Docker socket URI" - type = string -} - -provider "docker" { - # Defaulting to null if the variable is an empty string lets us have an optional variable without having to set our own default - host = var.docker_socket != "" ? var.docker_socket : null -} - -data "coder_provisioner" "me" {} -data "coder_workspace" "me" {} -data "coder_workspace_owner" "me" {} - -data "coder_parameter" "java_version" { - name = "Java Version" - description = "Select the JDK version for your workspace." - type = "string" - default = "21" - - option { - name = "Java 8" - value = "8" - } - - option { - name = "Java 17" - value = "17" - } - - option { - name = "Java 21" - value = "21" - } -} - -data "coder_parameter" "repo_url" { - name = "Repository URL" - description = "Git repository to clone when workspace is created (public repo only)" - type = "string" - default = "" -} - -resource "coder_agent" "main" { - arch = data.coder_provisioner.me.arch - os = "linux" - startup_script = <<-EOT - set -e - - # Prepare user home with default files on first start. - if [ ! -f ~/.init_done ]; then - cp -rT /etc/skel ~ - touch ~/.init_done - fi - - # Add any commands that should be executed at workspace startup (e.g install requirements, start a program, etc) here - # Clone repo if URL is set - if [ -n "${data.coder_parameter.repo_url.value}" ]; then - if [ -d ~/repo ] && [ "$(ls -A ~/repo)" ]; then - echo "⚠️ Skipping clone: ~/repo already exists and is not empty." - else - echo "==> Cloning repository from: ${data.coder_parameter.repo_url.value}" - git clone --verbose "${data.coder_parameter.repo_url.value}" ~/repo \ - && echo "✅ Clone successful." \ - || echo "❌ Failed to clone repo. Please check the URL or access permissions." - fi - fi - EOT - - # These environment variables allow you to make Git commits right away after creating a - # workspace. Note that they take precedence over configuration defined in ~/.gitconfig! - # You can remove this block if you'd prefer to configure Git manually or using - # dotfiles. (see docs/dotfiles.md) - env = { - GIT_AUTHOR_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name) - GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}" - GIT_COMMITTER_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name) - GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}" - } - - # The following metadata blocks are optional. They are used to display - # information about your workspace in the dashboard. You can remove them - # if you don't want to display any information. - # For basic resources, you can use the `coder stat` command. - # If you need more control, you can write your own script. - metadata { - display_name = "CPU Usage" - key = "0_cpu_usage" - script = "coder stat cpu" - interval = 10 - timeout = 1 - } - - metadata { - display_name = "RAM Usage" - key = "1_ram_usage" - script = "coder stat mem" - interval = 10 - timeout = 1 - } - - metadata { - display_name = "Home Disk" - key = "3_home_disk" - script = "coder stat disk --path $${HOME}" - interval = 60 - timeout = 1 - } - - metadata { - display_name = "CPU Usage (Host)" - key = "4_cpu_usage_host" - script = "coder stat cpu --host" - interval = 10 - timeout = 1 - } - - metadata { - display_name = "Memory Usage (Host)" - key = "5_mem_usage_host" - script = "coder stat mem --host" - interval = 10 - timeout = 1 - } - - metadata { - display_name = "Load Average (Host)" - key = "6_load_host" - # get load avg scaled by number of cores - script = <