diff --git a/dogfood/main.tf b/dogfood/main.tf index ba61d1d352390..91bcee5641a68 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -71,6 +71,37 @@ data "coder_parameter" "region" { # } } +data "coder_parameter" "jetbrains_ide" { + type = "list(string)" + name = "jetbrains_ide" + display_name = "JetBrains IDE" + icon = "/icon/gateway.svg" + mutable = true + default = jsonencode([ + "GO", + "232.9559.64", + "https://download.jetbrains.com/go/goland-2023.2.1.tar.gz" + ]) + option { + icon = "/icon/goland.svg" + name = "GoLand" + value = jsonencode([ + "GO", + "232.9559.64", + "https://download.jetbrains.com/go/goland-2023.2.1.tar.gz" + ]) + } + option { + icon = "/icon/webstorm.svg" + name = "WebStorm" + value = jsonencode([ + "WS", + "232.9559.54", + "https://download.jetbrains.com/webstorm/WebStorm-2023.2.1.tar.gz" + ]) + } +} + provider "docker" { host = lookup(local.docker_host, data.coder_parameter.region.value) } @@ -189,7 +220,6 @@ resource "coder_agent" "dev" { repo_dir="$${repo_dir/#~\//$HOME\/}" if [ ! -d "$repo_dir" ]; then mkdir -p "$repo_dir" - git clone https://github.com/coder/coder "$repo_dir" fi @@ -242,6 +272,15 @@ resource "coder_app" "filebrowser" { share = "owner" } +resource "coder_app" "gateway" { + agent_id = coder_agent.dev.id + display_name = data.coder_parameter.jetbrains_ide.option[index(data.coder_parameter.jetbrains_ide.option.*.value, data.coder_parameter.jetbrains_ide.value)].name + slug = "gateway" + url = "jetbrains-gateway://connect#type=coder&workspace=${data.coder_workspace.me.name}&agent=dev&folder=${replace(data.coder_parameter.repo_dir.value, "/^~\\//", "/home/coder/")}&url=${data.coder_workspace.me.access_url}&token=${data.coder_workspace.me.owner_session_token}&ide_product_code=${jsondecode(data.coder_parameter.jetbrains_ide.value)[0]}&ide_build_number=${jsondecode(data.coder_parameter.jetbrains_ide.value)[1]}&ide_download_link=${jsondecode(data.coder_parameter.jetbrains_ide.value)[2]}" + icon = data.coder_parameter.jetbrains_ide.option[index(data.coder_parameter.jetbrains_ide.option.*.value, data.coder_parameter.jetbrains_ide.value)].icon + external = true +} + resource "docker_volume" "home_volume" { name = "coder-${data.coder_workspace.me.id}-home" # Protect the volume from being deleted due to changes in attributes. diff --git a/site/static/icon/gateway.svg b/site/static/icon/gateway.svg new file mode 100644 index 0000000000000..b68e949072407 --- /dev/null +++ b/site/static/icon/gateway.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +