From 32993179fee2e7b13aa04da1f1785c717684e030 Mon Sep 17 00:00:00 2001 From: Dylan Wilson Date: Tue, 9 Jan 2024 18:11:46 -0500 Subject: [PATCH 1/3] chore: update Digital Ocean example template (#11528) --- examples/templates/do-linux/main.tf | 157 +++++++++++++--------------- site/static/icon/almalinux.svg | 16 +++ 2 files changed, 87 insertions(+), 86 deletions(-) create mode 100644 site/static/icon/almalinux.svg diff --git a/examples/templates/do-linux/main.tf b/examples/templates/do-linux/main.tf index 22eed81bdb4e1..fbb4e2a5c2861 100644 --- a/examples/templates/do-linux/main.tf +++ b/examples/templates/do-linux/main.tf @@ -56,25 +56,40 @@ data "coder_parameter" "droplet_image" { type = "string" mutable = false option { - name = "Ubuntu 22.04" - value = "ubuntu-22-04-x64" - icon = "/icon/ubuntu.svg" + name = "AlmaLinux 9" + value = "almalinux-9-x64" + icon = "/icon/almalinux.svg" } option { - name = "Ubuntu 20.04" - value = "ubuntu-20-04-x64" - icon = "/icon/ubuntu.svg" + name = "AlmaLinux 8" + value = "almalinux-8-x64" + icon = "/icon/almalinux.svg" } option { - name = "Fedora 36" - value = "fedora-36-x64" + name = "Fedora 39" + value = "fedora-39-x64" icon = "/icon/fedora.svg" } option { - name = "Fedora 35" - value = "fedora-35-x64" + name = "Fedora 38" + value = "fedora-38-x64" icon = "/icon/fedora.svg" } + option { + name = "CentOS Stream 9" + value = "centos-stream-9-x64" + icon = "/icon/centos.svg" + } + option { + name = "CentOS Stream 8" + value = "centos-stream-8-x64" + icon = "/icon/centos.svg" + } + option { + name = "Debian 12" + value = "debian-12-x64" + icon = "/icon/debian.svg" + } option { name = "Debian 11" value = "debian-11-x64" @@ -86,14 +101,9 @@ data "coder_parameter" "droplet_image" { icon = "/icon/debian.svg" } option { - name = "CentOS Stream 9" - value = "centos-stream-9-x64" - icon = "/icon/centos.svg" - } - option { - name = "CentOS Stream 8" - value = "centos-stream-8-x64" - icon = "/icon/centos.svg" + name = "Rocky Linux 9" + value = "rockylinux-9-x64" + icon = "/icon/rockylinux.svg" } option { name = "Rocky Linux 8" @@ -101,9 +111,14 @@ data "coder_parameter" "droplet_image" { icon = "/icon/rockylinux.svg" } option { - name = "Rocky Linux 8.4" - value = "rockylinux-8-4-x64" - icon = "/icon/rockylinux.svg" + name = "Ubuntu 22.04 (LTS)" + value = "ubuntu-22-04-x64" + icon = "/icon/ubuntu.svg" + } + option { + name = "Ubuntu 20.04 (LTS)" + value = "ubuntu-20-04-x64" + icon = "/icon/ubuntu.svg" } } @@ -115,6 +130,8 @@ data "coder_parameter" "droplet_size" { type = "string" icon = "/icon/memory.svg" mutable = false + # s-1vcpu-512mb-10gb is unsupported in tor1, blr1, lon1, sfo2, and nyc3 regions + # s-8vcpu-16gb access requires a support ticket with Digital Ocean option { name = "1 vCPU, 1 GB RAM" value = "s-1vcpu-1gb" @@ -135,13 +152,8 @@ data "coder_parameter" "droplet_size" { name = "4 vCPU, 8 GB RAM" value = "s-4vcpu-8gb" } - option { - name = "8 vCPU, 16 GB RAM" - value = "s-8vcpu-16gb" - } } - data "coder_parameter" "home_volume_size" { name = "home_volume_size" display_name = "Home volume size" @@ -151,7 +163,7 @@ data "coder_parameter" "home_volume_size" { mutable = false validation { min = 1 - max = 999999 + max = 100 # Sizes larger than 100 GB require a support ticket with Digital Ocean } } @@ -163,70 +175,56 @@ data "coder_parameter" "region" { type = "string" default = "ams3" mutable = false + # nyc1, sfo1, and ams2 regions were excluded because they do not support volumes, which are used to persist data while decreasing cost option { - name = "New York 1" - value = "nyc1" - icon = "/emojis/1f1fa-1f1f8.png" - } - option { - name = "New York 2" - value = "nyc2" - icon = "/emojis/1f1fa-1f1f8.png" - } - option { - name = "New York 3" - value = "nyc3" - icon = "/emojis/1f1fa-1f1f8.png" - } - option { - name = "San Francisco 1" - value = "sfo1" - icon = "/emojis/1f1fa-1f1f8.png" - } - option { - name = "San Francisco 2" - value = "sfo2" - icon = "/emojis/1f1fa-1f1f8.png" + name = "Canada (Toronto)" + value = "tor1" + icon = "/emojis/1f1e8-1f1e6.png" } option { - name = "San Francisco 3" - value = "sfo3" - icon = "/emojis/1f1fa-1f1f8.png" + name = "Germany (Frankfurt)" + value = "fra1" + icon = "/emojis/1f1e9-1f1ea.png" } option { - name = "Amsterdam 2" - value = "ams2" - icon = "/emojis/1f1f3-1f1f1.png" + name = "India (Bangalore)" + value = "blr1" + icon = "/emojis/1f1ee-1f1f3.png" } option { - name = "Amsterdam 3" + name = "Netherlands (Amsterdam)" value = "ams3" icon = "/emojis/1f1f3-1f1f1.png" } option { - name = "Singapore 1" + name = "Singapore" value = "sgp1" icon = "/emojis/1f1f8-1f1ec.png" } option { - name = "London 1" + name = "United Kingdom (London)" value = "lon1" icon = "/emojis/1f1ec-1f1e7.png" } option { - name = "Frankfurt 1" - value = "fra1" - icon = "/emojis/1f1e9-1f1ea.png" + name = "United States (California - 2)" + value = "sfo2" + icon = "/emojis/1f1fa-1f1f8.png" } option { - name = "Toronto 1" - value = "tor1" - icon = "/emojis/1f1e8-1f1e6.png" + name = "United States (California - 3)" + value = "sfo3" + icon = "/emojis/1f1fa-1f1f8.png" } option { - name = "Bangalore 1" - value = "blr1" - icon = "/emojis/1f1ee-1f1f3.png" + name = "United States (New York - 1)" + value = "nyc1" + icon = "/emojis/1f1fa-1f1f8.png" + } + option { + name = "United States (New York - 3)" + value = "nyc3" + icon = "/emojis/1f1fa-1f1f8.png" } } @@ -247,35 +245,22 @@ resource "coder_agent" "main" { display_name = "CPU Usage" interval = 5 timeout = 5 - script = <<-EOT - #!/bin/bash - set -e - top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4 "%"}' - EOT + script = "coder stat cpu" } metadata { key = "memory" display_name = "Memory Usage" interval = 5 timeout = 5 - script = <<-EOT - #!/bin/bash - set -e - free -m | awk 'NR==2{printf "%.2f%%\t", $3*100/$2 }' - EOT + script = "coder stat mem" } metadata { - key = "disk" - display_name = "Disk Usage" + key = "home" + display_name = "Home Usage" interval = 600 # every 10 minutes timeout = 30 # df can take a while on large filesystems - script = <<-EOT - #!/bin/bash - set -e - df /home/coder | awk '$NF=="/"{printf "%s", $5}' - EOT + script = "coder stat disk --path /home/${lower(data.coder_workspace.me.owner)}" } - } resource "digitalocean_volume" "home_volume" { diff --git a/site/static/icon/almalinux.svg b/site/static/icon/almalinux.svg new file mode 100644 index 0000000000000..b2e050ae2b83e --- /dev/null +++ b/site/static/icon/almalinux.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + From ec661636baa56bc460c63891e5acf0546c18c9d6 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Thu, 11 Jan 2024 02:47:35 +0300 Subject: [PATCH 2/3] lower workspace and owner name usage --- examples/templates/do-linux/main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/templates/do-linux/main.tf b/examples/templates/do-linux/main.tf index fbb4e2a5c2861..3afcaebc59806 100644 --- a/examples/templates/do-linux/main.tf +++ b/examples/templates/do-linux/main.tf @@ -278,13 +278,13 @@ resource "digitalocean_volume" "home_volume" { resource "digitalocean_droplet" "workspace" { region = data.coder_parameter.region.value count = data.coder_workspace.me.start_count - name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}" + name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}" image = data.coder_parameter.droplet_image.value size = data.coder_parameter.droplet_size.value volume_ids = [digitalocean_volume.home_volume.id] user_data = templatefile("cloud-config.yaml.tftpl", { - username = data.coder_workspace.me.owner + username = lower(data.coder_workspace.me.owner) home_volume_label = digitalocean_volume.home_volume.initial_filesystem_label init_script = base64encode(coder_agent.main.init_script) coder_agent_token = coder_agent.main.token From 15899875225a36f9486edafe456791d5f20c5583 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Wed, 10 Jan 2024 23:53:46 +0000 Subject: [PATCH 3/3] `make gen` --- site/src/theme/icons.json | 1 + 1 file changed, 1 insertion(+) diff --git a/site/src/theme/icons.json b/site/src/theme/icons.json index 374efc29370c3..7ea2f49323b73 100644 --- a/site/src/theme/icons.json +++ b/site/src/theme/icons.json @@ -1,4 +1,5 @@ [ + "almalinux.svg", "android-studio.svg", "apache-guacamole.svg", "apple-black.svg",