From ca1f871413452e381a746062f1925358a3318c07 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 27 Feb 2023 16:53:01 +0000 Subject: [PATCH 1/6] chore: add `coder_git_auth` to the dogfood template --- dogfood/main.tf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 0774e7e06fb68..8b5386e08210d 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.6.10" + version = "0.6.14" } docker = { source = "kreuzwerker/docker" @@ -55,6 +55,10 @@ provider "docker" { provider "coder" {} +data "coder_git_auth" "github" { + id = "github" +} + data "coder_workspace" "me" {} resource "coder_agent" "dev" { From c932fbdd64b5ff741221a930a45395cc2affc22f Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 27 Feb 2023 17:20:15 +0000 Subject: [PATCH 2/6] Switch to rich parameters --- dogfood/main.tf | 87 ++++++++++++++++++++++++++----------------------- 1 file changed, 47 insertions(+), 40 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 8b5386e08210d..1faabcf06e441 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -11,34 +11,6 @@ terraform { } } -# User parameters - -variable "region" { - type = string - description = "Which region to deploy to." - default = "us-pittsburgh" - validation { - condition = contains(["us-pittsburgh", "eu-helsinki", "ap-sydney"], var.region) - error_message = "Region must be one of us-pittsburg, eu-helsinki, or ap-sydney." - } -} - -variable "dotfiles_uri" { - type = string - description = <<-EOF - Dotfiles repo URI (optional) - - see https://dotfiles.github.io - EOF - default = "" -} - -variable "datocms_api_token" { - type = string - description = "An API token from DATOCMS for usage with building our website." - default = "" -} - locals { // These are Tailscale IP addresses. Ask Dean or Kyle for help. docker_host = { @@ -49,8 +21,44 @@ locals { } } +data "coder_parameter" "repo_dir" { + type = "string" + name = "Coder Repository Directory" + default = "~/coder" + description = "The directory specified will be created and [coder/coder](https://github.com/coder/coder) will be automatically cloned into it 🪄." + mutable = true +} + +data "coder_parameter" "dotfiles_url" { + type = "string" + name = "Dotfiles URL" + description = "A path to your dotfiles. See: https://dotfiles.github.io" + default = " " + mutable = true +} + +data "coder_parameter" "region" { + type = "string" + name = "Region" + option { + icon = "/emojis/1f1fa-1f1f8.png" + name = "Pittsburgh" + value = "us-pittsburgh" + } + option { + icon = "/emojis/1f1eb-1f1ee.png" + name = "Helsinki" + value = "eu-helsinki" + } + option { + icon = "/emojis/1f1e6-1f1fa.png" + name = "Sydney" + value = "ap-sydney" + } +} + provider "docker" { - host = lookup(local.docker_host, var.region) + host = lookup(local.docker_host, data.coder_parameter.region.value) } provider "coder" {} @@ -65,15 +73,24 @@ resource "coder_agent" "dev" { arch = "amd64" os = "linux" + dir = data.coder_parameter.repo_dir.value login_before_ready = false startup_script_timeout = 60 startup_script = <<-EOT set -eux -o pipefail + # install and start code-server curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/tmp/code-server --version 4.8.3 /tmp/code-server/bin/code-server --auth none --port 13337 >/tmp/code-server.log 2>&1 & + + if [ ! -d "${data.coder_parameter.repo_dir.value}" ]; then + mkdir -p ${data.coder_parameter.repo_dir.value} + + git clone https://github.com/coder/coder ${data.coder_parameter.repo_dir.value} + fi + sudo service docker start - DOTFILES_URI=${var.dotfiles_uri} + DOTFILES_URI=${data.coder_parameter.dotfiles_url.value} rm -f ~/.personalize.log if [ -n "$DOTFILES_URI" ]; then coder dotfiles "$DOTFILES_URI" -y 2>&1 | tee -a ~/.personalize.log @@ -129,15 +146,6 @@ resource "docker_volume" "home_volume" { } } -resource "coder_metadata" "home_info" { - resource_id = docker_volume.home_volume.id - item { - key = "🤫🤫🤫

" - value = "❤️❤️❤️" - sensitive = true - } -} - locals { container_name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}" registry_name = "codercom/oss-dogfood" @@ -169,7 +177,6 @@ resource "docker_container" "workspace" { runtime = "sysbox-runc" env = [ "CODER_AGENT_TOKEN=${coder_agent.dev.token}", - "DATOCMS_API_TOKEN=${var.datocms_api_token}", ] host { host = "host.docker.internal" From 3b697bc83be2c33c0b3b2584b16945b85fbea0a8 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 27 Feb 2023 21:19:43 +0000 Subject: [PATCH 3/6] Unquote startup dir --- dogfood/main.tf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 1faabcf06e441..9b73f5c5cd882 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -83,7 +83,8 @@ resource "coder_agent" "dev" { curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=/tmp/code-server --version 4.8.3 /tmp/code-server/bin/code-server --auth none --port 13337 >/tmp/code-server.log 2>&1 & - if [ ! -d "${data.coder_parameter.repo_dir.value}" ]; then + + if [ ! -d ${data.coder_parameter.repo_dir.value} ]; then mkdir -p ${data.coder_parameter.repo_dir.value} git clone https://github.com/coder/coder ${data.coder_parameter.repo_dir.value} From 6bcddaf25a65b8f6466059a084a141043426a537 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 27 Feb 2023 23:58:04 +0000 Subject: [PATCH 4/6] Add Paris region --- dogfood/main.tf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 9b73f5c5cd882..90019dbafdb85 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -18,6 +18,7 @@ locals { "us-pittsburgh" = "tcp://100.94.74.63:2375" "eu-helsinki" = "tcp://100.117.102.81:2375" "ap-sydney" = "tcp://100.127.2.1:2375" + "eu-paris" = "tcp://100.74.161.61:2375" } } @@ -55,6 +56,11 @@ data "coder_parameter" "region" { name = "Sydney" value = "ap-sydney" } + # option { + # icon = "/emojis/1f1eb-1f1f7.png" + # name = "Phorcys' Server in Paris" + # value = "eu-paris" + # } } provider "docker" { @@ -91,7 +97,7 @@ resource "coder_agent" "dev" { fi sudo service docker start - DOTFILES_URI=${data.coder_parameter.dotfiles_url.value} + DOTFILES_URI="${data.coder_parameter.dotfiles_url.value}" rm -f ~/.personalize.log if [ -n "$DOTFILES_URI" ]; then coder dotfiles "$DOTFILES_URI" -y 2>&1 | tee -a ~/.personalize.log From df7df739c3ed0e496d91c945a7c4bb9c91e054fd Mon Sep 17 00:00:00 2001 From: Dean Sheather Date: Mon, 6 Mar 2023 14:08:15 +0000 Subject: [PATCH 5/6] chore: skip whitespace-only vals in startup script --- dogfood/main.tf | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 90019dbafdb85..679970d08bfe1 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -90,16 +90,17 @@ resource "coder_agent" "dev" { /tmp/code-server/bin/code-server --auth none --port 13337 >/tmp/code-server.log 2>&1 & - if [ ! -d ${data.coder_parameter.repo_dir.value} ]; then - mkdir -p ${data.coder_parameter.repo_dir.value} + CODER_REPO_DIR="${data.coder_parameter.repo_dir.value}" + if [ -n "$${CODER_REPO_DIR// }" ] && [ ! -d "$CODER_REPO_DIR" ]; then + mkdir -p "$CODER_REPO_DIR" - git clone https://github.com/coder/coder ${data.coder_parameter.repo_dir.value} + git clone https://github.com/coder/coder "$CODER_REPO_DIR" fi sudo service docker start DOTFILES_URI="${data.coder_parameter.dotfiles_url.value}" rm -f ~/.personalize.log - if [ -n "$DOTFILES_URI" ]; then + if [ -n "$${DOTFILES_URI// }" ]; then coder dotfiles "$DOTFILES_URI" -y 2>&1 | tee -a ~/.personalize.log fi if [ -x ~/personalize ]; then From e9a4de05d11571b6d2e546f5e889a627bb9d3c68 Mon Sep 17 00:00:00 2001 From: Dean Sheather Date: Tue, 14 Mar 2023 15:05:29 +1000 Subject: [PATCH 6/6] chore: update Sydney dogfood server IP --- dogfood/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dogfood/main.tf b/dogfood/main.tf index 679970d08bfe1..3654b4dfc275e 100644 --- a/dogfood/main.tf +++ b/dogfood/main.tf @@ -17,7 +17,7 @@ locals { "" = "tcp://100.94.74.63:2375" "us-pittsburgh" = "tcp://100.94.74.63:2375" "eu-helsinki" = "tcp://100.117.102.81:2375" - "ap-sydney" = "tcp://100.127.2.1:2375" + "ap-sydney" = "tcp://100.87.194.110:2375" "eu-paris" = "tcp://100.74.161.61:2375" } }