mirror of https://github.com/coder/coder.git
Co-authored-by: Muhammad Atif Ali <atif@coder.com>
This commit is contained in:
parent
9b437032e9
commit
4e5367c4a4
|
@ -56,35 +56,25 @@ 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 = "Debian 11"
|
||||
value = "debian-11-x64"
|
||||
icon = "/icon/debian.svg"
|
||||
}
|
||||
option {
|
||||
name = "Debian 10"
|
||||
value = "debian-10-x64"
|
||||
icon = "/icon/debian.svg"
|
||||
}
|
||||
option {
|
||||
name = "CentOS Stream 9"
|
||||
value = "centos-stream-9-x64"
|
||||
|
@ -95,15 +85,40 @@ data "coder_parameter" "droplet_image" {
|
|||
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"
|
||||
icon = "/icon/debian.svg"
|
||||
}
|
||||
option {
|
||||
name = "Debian 10"
|
||||
value = "debian-10-x64"
|
||||
icon = "/icon/debian.svg"
|
||||
}
|
||||
option {
|
||||
name = "Rocky Linux 9"
|
||||
value = "rockylinux-9-x64"
|
||||
icon = "/icon/rockylinux.svg"
|
||||
}
|
||||
option {
|
||||
name = "Rocky Linux 8"
|
||||
value = "rockylinux-8-x64"
|
||||
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,71 +175,57 @@ 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"
|
||||
}
|
||||
option {
|
||||
name = "San Francisco 3"
|
||||
value = "sfo3"
|
||||
icon = "/emojis/1f1fa-1f1f8.png"
|
||||
}
|
||||
option {
|
||||
name = "Amsterdam 2"
|
||||
value = "ams2"
|
||||
icon = "/emojis/1f1f3-1f1f1.png"
|
||||
}
|
||||
option {
|
||||
name = "Amsterdam 3"
|
||||
value = "ams3"
|
||||
icon = "/emojis/1f1f3-1f1f1.png"
|
||||
}
|
||||
option {
|
||||
name = "Singapore 1"
|
||||
value = "sgp1"
|
||||
icon = "/emojis/1f1f8-1f1ec.png"
|
||||
}
|
||||
option {
|
||||
name = "London 1"
|
||||
value = "lon1"
|
||||
icon = "/emojis/1f1ec-1f1e7.png"
|
||||
}
|
||||
option {
|
||||
name = "Frankfurt 1"
|
||||
value = "fra1"
|
||||
icon = "/emojis/1f1e9-1f1ea.png"
|
||||
}
|
||||
option {
|
||||
name = "Toronto 1"
|
||||
name = "Canada (Toronto)"
|
||||
value = "tor1"
|
||||
icon = "/emojis/1f1e8-1f1e6.png"
|
||||
}
|
||||
option {
|
||||
name = "Bangalore 1"
|
||||
name = "Germany (Frankfurt)"
|
||||
value = "fra1"
|
||||
icon = "/emojis/1f1e9-1f1ea.png"
|
||||
}
|
||||
option {
|
||||
name = "India (Bangalore)"
|
||||
value = "blr1"
|
||||
icon = "/emojis/1f1ee-1f1f3.png"
|
||||
}
|
||||
option {
|
||||
name = "Netherlands (Amsterdam)"
|
||||
value = "ams3"
|
||||
icon = "/emojis/1f1f3-1f1f1.png"
|
||||
}
|
||||
option {
|
||||
name = "Singapore"
|
||||
value = "sgp1"
|
||||
icon = "/emojis/1f1f8-1f1ec.png"
|
||||
}
|
||||
option {
|
||||
name = "United Kingdom (London)"
|
||||
value = "lon1"
|
||||
icon = "/emojis/1f1ec-1f1e7.png"
|
||||
}
|
||||
option {
|
||||
name = "United States (California - 2)"
|
||||
value = "sfo2"
|
||||
icon = "/emojis/1f1fa-1f1f8.png"
|
||||
}
|
||||
option {
|
||||
name = "United States (California - 3)"
|
||||
value = "sfo3"
|
||||
icon = "/emojis/1f1fa-1f1f8.png"
|
||||
}
|
||||
option {
|
||||
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"
|
||||
}
|
||||
}
|
||||
|
||||
# Configure the DigitalOcean Provider
|
||||
|
@ -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" {
|
||||
|
@ -293,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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[
|
||||
"almalinux.svg",
|
||||
"android-studio.svg",
|
||||
"apache-guacamole.svg",
|
||||
"apple-black.svg",
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" x="0" y="0" version="1.1" xml:space="preserve" viewBox="0 0 61.028259 59.731277">
|
||||
<defs/>
|
||||
<style id="style2" type="text/css">
|
||||
.st1{fill:#86da2f}.st2{fill:#24c2ff}.st3{fill:#ffcb12}.st4{fill:#0069da}.st5{fill:#ff4649}
|
||||
</style>
|
||||
<path id="path22" d="M56.11382 33.731278c2.6-.2 4.7 1.5 4.9 4.1.2 2.7-1.7 4.9-4.3 5.1-2.5.2-4.7-1.7-4.9-4.2-.2-2.7 1.6-4.7 4.3-5z" class="st1"/>
|
||||
<path id="path24" d="M24.51382 55.031278c0-2.6 2-4.6 4.4-4.6 2.4 0 4.7 2.2 4.7 4.7 0 2.4-2 4.5-4.3 4.6-2.9 0-4.8-1.8-4.8-4.7z" class="st2"/>
|
||||
<path id="path26" d="M31.61382 25.831278c-.4.2-.6-.1-.7-.4-3.7-6.9-2.6-15.6000004 3.9-20.8000004 1.7-1.4 4.9-1.7 6.3-.3.6.5.7 1.1.8 1.8.2 1.5.5 3 1.5 4.2000004 1.1 1.3 2.5 1.8 4.1 1.7 1.4 0 2.8-.2 3.7 1.4.5.9.3 4.4-.5 5.1-.4.3-.7.1-1 0-2.3-.9-4.7-.9-7.1-.5-.8.1-1.2-.1-1.2-1-.1-1.5-.4-2.9-1.2-4.2-1.5-2.7-4.3-2.8-6.1-.3-1.5 2-1.9 4.4-2.3 6.8-.4 2.1-.3 4.3-.2 6.5 0 0-.1 0 0 0z" class="st3"/>
|
||||
<path id="path28" d="M34.11382 27.331278c-.2-.3-.1-.6.2-.8 5.7-5.2 14.2-6.2 20.8-1.1 1.7 1.4 2.8 4.3 1.9 6-.4.7-.9 1-1.5 1.2-1.4.6-2.7 1.2-3.6 2.5-.9 1.3-1.1 2.8-.7 4.4.3 1.3.8 2.7-.5 3.9-.7.7-4.1 1.3-5 .7-.4-.3-.3-.6-.2-1 .3-2.5-.3-4.8-1.2-7-.3-.8-.2-1.2.6-1.4 1.4-.4 2.7-1.1 3.7-2.1 2.2-2.1 1.7-4.8-1.2-6-2.3-1-4.7-.8-7-.6-2.2.1-4.3.7-6.3 1.3z" class="st1"/>
|
||||
<path id="path30" d="M32.81382 29.931278c.3-.3.5-.2.8 0 6.6 4 10 11.9 7 19.6-.8 2-3.4 4-5.3 3.5-.8-.2-1.2-.6-1.6-1.1-.9-1.2-1.9-2.3-3.4-2.8-1.6-.5-3-.2-4.4.6-1.2.7-2.4 1.6-3.9.7-.9-.5-2.4-3.6-2.1-4.6.2-.4.6-.4 1-.4 2.5-.4 4.5-1.6 6.4-3.2.6-.5 1.1-.5 1.6.2.8 1.2 1.8 2.2 3.1 2.9 2.6 1.5 5.1.2 5.4-2.8.3-2.5-.6-4.7-1.4-6.9-.9-2-2-3.9-3.2-5.7z" class="st2"/>
|
||||
<path id="path32" d="M29.61382 30.531278c-.4 2-1.3 3.9-2.5 5.6-3.6 5.4-8.8 7.6-15.2 7-2.2999997-.2-4.1999997-2.1-4.3999997-4-.1-.8.1-1.4.6-2 .7-.9 1.3-1.7 1.6-2.8.5999997-2.2-.2-4-1.8-5.6-2.2-2.2-1.9-4.2.7-5.8.3-.2.7-.4 1.1-.6.5999997-.3 1.0999997-.3 1.2999997.4.9 2.3 2.7 4 4.7 5.4.7.6.7 1 .1 1.7-1.2 1.3-1.9 2.9-2 4.7-.2 2.2 1.1 3.6 3.3 3.6 1.4 0 2.7-.5 3.9-1.1 3.1-1.6 5.5-3.9 7.8-6.3.3-.1.4-.3.8-.2z" class="st4"/>
|
||||
<path id="path34" d="M13.21382 9.5312776c.2 0 .7.1 1.2.2 3.7.7000004 6-.6 7.2-4.1.8-2.3 2.5-3 4.7-1.8.1 0 .1.1.2.1 2.3 1.3 2.3 1.5.9 3.5-1.2 1.6-1.8 3.4000004-2.1 5.3000004-.2 1.1-.6 1.3-1.6.9-1.6-.6-3.3-.6-5 0-1.9.6-2.7 2.3-2.1 4.2.8 2.5 3 3.6 4.9 4.9 1.9 1.3 4.1 2 6.2 2.9.3.1.8.1.7.6-.1.3-.5.3-.9.3-4.5.2-8.8-.5-12.3-3.5-3.3-2.7-5.6999997-6-5.2999997-10.6.2999997-1.5 1.3999997-2.6000004 3.2999997-2.9000004z" class="st5"/>
|
||||
<path id="path36" d="M5.0138203 37.631278c-2.4.3-4.80000003-1.7-5.00000003-4.2-.2-2.4 1.80000003-4.8 4.10000003-5 2.6-.3 5 1.5 5.2 3.9.1 2.3-1.4 5.1-4.3 5.3z" class="st4"/>
|
||||
<path id="path38" d="M47.01382 2.0312776c2.5-.2 4.9 1.8 5.1 4.3.2 2.4-1.8 4.7000004-4.2 4.9000004-2.6.2-4.9-1.7000004-5.1-4.2000004-.2-2.5 1.6-4.8 4.2-5z" class="st3"/>
|
||||
<path id="path40" d="M20.91382 3.9312776c.3 2.6-1.5 4.8-4.2 5.2-2.3.3-4.7-1.6-5-3.8-.3-2.9 1.3-4.99999996 4-5.29999996 2.5-.3 4.9 1.59999996 5.2 3.89999996z" class="st5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
Loading…
Reference in New Issue