From 5c0e39cb70a508f0ee3ebe3a3e3d098a9e77edb0 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Tue, 12 Sep 2023 16:57:45 +0300 Subject: [PATCH 01/10] chore(dogfood): add a coder_app for JetBrains gateway IDEs I am adding this to test this extensively before making it a native link. --- dogfood/main.tf | 63 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index ba61d1d352390..bc233be94f0b9 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -71,6 +71,50 @@ data "coder_parameter" "region" { # } } + +data "coder_parameter" "security_groups" { + name = "Security groups" + icon = "/icon/aws.png" + + description = "Select appropriate security groups." + mutable = true + default = jsonencode([ + "Web Server Security Group", + "Database Security Group", + "Backend Security Group" + ]) +} + +data "coder_parameter" "jetbrains_ide" { + type = "list(string)" + name = "jetbrains_ide" + display_name = "JetBrains IDE" + icon = "/icon/gateway.svg" + 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) } @@ -183,13 +227,12 @@ resource "coder_agent" "dev" { # Install and launch filebrowser curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash - filebrowser --noauth --root /home/coder --port 13338 >/tmp/filebrowser.log 2>&1 & + filebrowser --noauth --root /home/coder --port 13339 >/tmp/filebrowser.log 2>&1 & repo_dir="${data.coder_parameter.repo_dir.value}" repo_dir="$${repo_dir/#~\//$HOME\/}" if [ ! -d "$repo_dir" ]; then mkdir -p "$repo_dir" - git clone https://github.com/coder/coder "$repo_dir" fi @@ -236,12 +279,26 @@ resource "coder_app" "filebrowser" { agent_id = coder_agent.dev.id display_name = "File Browser" slug = "filebrowser" - url = "http://localhost:13338" + url = "http://localhost:13339" icon = "https://raw.githubusercontent.com/matifali/logos/main/database.svg" subdomain = true 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=${data.coder_parameter.repo_dir.value}&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 +} + + +output "debug_value" { + value = data.coder_parameter.jetbrains_ide.value +} + resource "docker_volume" "home_volume" { name = "coder-${data.coder_workspace.me.id}-home" # Protect the volume from being deleted due to changes in attributes. From 3042272ee22e716dca44f715e117e32ceb838cc8 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Tue, 12 Sep 2023 13:59:09 +0000 Subject: [PATCH 02/10] fmt --- dogfood/main.tf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index bc233be94f0b9..f787dd8a08277 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -73,9 +73,9 @@ data "coder_parameter" "region" { data "coder_parameter" "security_groups" { - name = "Security groups" - icon = "/icon/aws.png" - + name = "Security groups" + icon = "/icon/aws.png" + description = "Select appropriate security groups." mutable = true default = jsonencode([ @@ -88,16 +88,16 @@ data "coder_parameter" "security_groups" { data "coder_parameter" "jetbrains_ide" { type = "list(string)" name = "jetbrains_ide" - display_name = "JetBrains IDE" + display_name = "JetBrains IDE" icon = "/icon/gateway.svg" - default = jsonencode([ + default = jsonencode([ "GO", "232.9559.64", "https://download.jetbrains.com/go/goland-2023.2.1.tar.gz" ]) option { - icon = "/icon/goland.svg" - name = "GoLand" + icon = "/icon/goland.svg" + name = "GoLand" value = jsonencode([ "GO", "232.9559.64", @@ -105,8 +105,8 @@ data "coder_parameter" "jetbrains_ide" { ]) } option { - icon = "/icon/webstorm.svg" - name = "WebStorm" + icon = "/icon/webstorm.svg" + name = "WebStorm" value = jsonencode([ "WS", "232.9559.54", From c8a399b2fe165127d298e96356b6e475fb072339 Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Tue, 12 Sep 2023 14:01:31 +0000 Subject: [PATCH 03/10] handle folder path --- dogfood/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index f787dd8a08277..0635407ffc02a 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -289,7 +289,7 @@ 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=${data.coder_parameter.repo_dir.value}&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]}" + 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 } From 0896db15dda0af9b6a70c20cd2c4d999b633d05c Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Tue, 12 Sep 2023 18:24:57 +0300 Subject: [PATCH 04/10] remove a leftover snippet --- dogfood/main.tf | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 0635407ffc02a..5ec22e86e4bdb 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -71,20 +71,6 @@ data "coder_parameter" "region" { # } } - -data "coder_parameter" "security_groups" { - name = "Security groups" - icon = "/icon/aws.png" - - description = "Select appropriate security groups." - mutable = true - default = jsonencode([ - "Web Server Security Group", - "Database Security Group", - "Backend Security Group" - ]) -} - data "coder_parameter" "jetbrains_ide" { type = "list(string)" name = "jetbrains_ide" From 6e65f46d7b23ec2b3033fff67d6823aeceddecbc Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Tue, 12 Sep 2023 18:25:48 +0300 Subject: [PATCH 05/10] revert filebrowser port --- dogfood/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 5ec22e86e4bdb..564a88cf92dd6 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -213,7 +213,7 @@ resource "coder_agent" "dev" { # Install and launch filebrowser curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash - filebrowser --noauth --root /home/coder --port 13339 >/tmp/filebrowser.log 2>&1 & + filebrowser --noauth --root /home/coder --port 13338 >/tmp/filebrowser.log 2>&1 & repo_dir="${data.coder_parameter.repo_dir.value}" repo_dir="$${repo_dir/#~\//$HOME\/}" @@ -265,7 +265,7 @@ resource "coder_app" "filebrowser" { agent_id = coder_agent.dev.id display_name = "File Browser" slug = "filebrowser" - url = "http://localhost:13339" + url = "http://localhost:13338" icon = "https://raw.githubusercontent.com/matifali/logos/main/database.svg" subdomain = true share = "owner" From 37158be9e2c3246469363b1b3a63cc9c79aa87b1 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Tue, 12 Sep 2023 18:26:31 +0300 Subject: [PATCH 06/10] remove debug output --- dogfood/main.tf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 564a88cf92dd6..ffb2c28ea4bd8 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -280,11 +280,6 @@ resource "coder_app" "gateway" { external = true } - -output "debug_value" { - value = data.coder_parameter.jetbrains_ide.value -} - resource "docker_volume" "home_volume" { name = "coder-${data.coder_workspace.me.id}-home" # Protect the volume from being deleted due to changes in attributes. From 9173f974b4a1b4939917e45a88ab72ad65569030 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Wed, 13 Sep 2023 11:53:56 +0300 Subject: [PATCH 07/10] make gateway IDE selection mutable --- dogfood/main.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/dogfood/main.tf b/dogfood/main.tf index ffb2c28ea4bd8..91bcee5641a68 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -76,6 +76,7 @@ data "coder_parameter" "jetbrains_ide" { name = "jetbrains_ide" display_name = "JetBrains IDE" icon = "/icon/gateway.svg" + mutable = true default = jsonencode([ "GO", "232.9559.64", From bf4ded17da3ac507ce96666151b9b89d3060df98 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Wed, 13 Sep 2023 17:06:06 +0300 Subject: [PATCH 08/10] chore: add JetBrains product icons (#9664) --- site/static/icon/appcode.svg | 26 +++++++++++++++ site/static/icon/gateway.svg | 64 ++++++++++++++++++++++++++++++++++++ site/static/icon/idea.svg | 62 ++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 site/static/icon/appcode.svg create mode 100644 site/static/icon/gateway.svg create mode 100644 site/static/icon/idea.svg diff --git a/site/static/icon/appcode.svg b/site/static/icon/appcode.svg new file mode 100644 index 0000000000000..8ef0aa12f2229 --- /dev/null +++ b/site/static/icon/appcode.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/site/static/icon/idea.svg b/site/static/icon/idea.svg new file mode 100644 index 0000000000000..bf2a1ec399c9b --- /dev/null +++ b/site/static/icon/idea.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 540dce240414efbd81b969cbff285cf3b7218b24 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Wed, 13 Sep 2023 17:07:58 +0300 Subject: [PATCH 09/10] Discard changes to site/static/icon/appcode.svg --- site/static/icon/appcode.svg | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 site/static/icon/appcode.svg diff --git a/site/static/icon/appcode.svg b/site/static/icon/appcode.svg deleted file mode 100644 index 8ef0aa12f2229..0000000000000 --- a/site/static/icon/appcode.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From cb0f3593999428c3263b7d88223f9de2af5b4377 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Wed, 13 Sep 2023 17:08:01 +0300 Subject: [PATCH 10/10] Discard changes to site/static/icon/idea.svg --- site/static/icon/idea.svg | 62 --------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 site/static/icon/idea.svg diff --git a/site/static/icon/idea.svg b/site/static/icon/idea.svg deleted file mode 100644 index bf2a1ec399c9b..0000000000000 --- a/site/static/icon/idea.svg +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file