From 8c4dbcfb1f388904b07d3eeffd3521650920d30b Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 11:08:57 +0000 Subject: [PATCH 1/9] add metadata to Docker templates --- examples/templates/docker-code-server/main.tf | 18 ++++++++++++++---- examples/templates/docker-image-builds/main.tf | 12 +++++++++++- .../templates/docker-with-dotfiles/main.tf | 12 +++++++++++- examples/templates/docker/main.tf | 18 ++++++++++++++---- 4 files changed, 50 insertions(+), 10 deletions(-) diff --git a/examples/templates/docker-code-server/main.tf b/examples/templates/docker-code-server/main.tf index 29be1ff990219..281fdf9afb470 100644 --- a/examples/templates/docker-code-server/main.tf +++ b/examples/templates/docker-code-server/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } docker = { source = "kreuzwerker/docker" @@ -45,9 +45,9 @@ resource "coder_agent" "main" { # You can remove this block if you'd prefer to configure Git manually or using # dotfiles. (see docs/dotfiles.md) env = { - GIT_AUTHOR_NAME = "${data.coder_workspace.me.owner}" - GIT_COMMITTER_NAME = "${data.coder_workspace.me.owner}" - GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}" + GIT_AUTHOR_NAME = "${data.coder_workspace.me.owner}" + GIT_COMMITTER_NAME = "${data.coder_workspace.me.owner}" + GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}" GIT_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}" } } @@ -82,3 +82,13 @@ resource "docker_container" "workspace" { read_only = false } } + +resource "coder_metadata" "container_info" { + count = data.coder_workspace.me.start_count + resource_id = docker_container.workspace[0].id + + item { + key = "image" + value = var.docker_image + } +} diff --git a/examples/templates/docker-image-builds/main.tf b/examples/templates/docker-image-builds/main.tf index c135a09c2112e..5be35e74e98f4 100644 --- a/examples/templates/docker-image-builds/main.tf +++ b/examples/templates/docker-image-builds/main.tf @@ -3,7 +3,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } docker = { source = "kreuzwerker/docker" @@ -120,3 +120,13 @@ resource "docker_container" "workspace" { read_only = false } } + +resource "coder_metadata" "container_info" { + count = data.coder_workspace.me.start_count + resource_id = docker_container.workspace[0].id + + item { + key = "image" + value = var.docker_image + } +} diff --git a/examples/templates/docker-with-dotfiles/main.tf b/examples/templates/docker-with-dotfiles/main.tf index afc91c34e326b..233946d4cff73 100644 --- a/examples/templates/docker-with-dotfiles/main.tf +++ b/examples/templates/docker-with-dotfiles/main.tf @@ -9,7 +9,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } docker = { source = "kreuzwerker/docker" @@ -66,3 +66,13 @@ resource "docker_container" "workspace" { read_only = false } } + +resource "coder_metadata" "container_info" { + count = data.coder_workspace.me.start_count + resource_id = docker_container.workspace[0].id + + item { + key = "image" + value = var.docker_image + } +} diff --git a/examples/templates/docker/main.tf b/examples/templates/docker/main.tf index 1aad84d324f76..6c1b8ddd5e87c 100644 --- a/examples/templates/docker/main.tf +++ b/examples/templates/docker/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } docker = { source = "kreuzwerker/docker" @@ -80,9 +80,9 @@ resource "coder_agent" "main" { # You can remove this block if you'd prefer to configure Git manually or using # dotfiles. (see docs/dotfiles.md) env = { - GIT_AUTHOR_NAME = "${data.coder_workspace.me.owner}" - GIT_COMMITTER_NAME = "${data.coder_workspace.me.owner}" - GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}" + GIT_AUTHOR_NAME = "${data.coder_workspace.me.owner}" + GIT_COMMITTER_NAME = "${data.coder_workspace.me.owner}" + GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}" GIT_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}" } } @@ -138,3 +138,13 @@ resource "docker_container" "workspace" { read_only = false } } + +resource "coder_metadata" "container_info" { + count = data.coder_workspace.me.start_count + resource_id = docker_container.workspace[0].id + + item { + key = "image" + value = var.docker_image + } +} From 876c5d97c00d6815bd953fe1d052b0a407687b56 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 11:22:25 +0000 Subject: [PATCH 2/9] add metadata to AWS templates --- examples/templates/aws-linux/main.tf | 20 ++++++++++++++++++-- examples/templates/aws-windows/main.tf | 20 ++++++++++++++++++-- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/examples/templates/aws-linux/main.tf b/examples/templates/aws-linux/main.tf index 2ba3a7d8cb359..61bb4dc7980e5 100644 --- a/examples/templates/aws-linux/main.tf +++ b/examples/templates/aws-linux/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } } } @@ -146,7 +146,7 @@ EOT resource "aws_instance" "dev" { ami = data.aws_ami.ubuntu.id availability_zone = "${var.region}a" - instance_type = "${var.instance_type}" + instance_type = var.instance_type user_data = data.coder_workspace.me.transition == "start" ? local.user_data_start : local.user_data_end tags = { @@ -155,3 +155,19 @@ resource "aws_instance" "dev" { Coder_Provisioned = "true" } } + +resource "coder_metadata" "workspace_info" { + resource_id = aws_instance.dev.id + item { + key = "region" + value = var.region + } + item { + key = "instance type" + value = aws_instance.dev.instance_type + } + item { + key = "disk size" + value = "${aws_instance.dev.root_block_device[0].volume_size} GB" + } +} diff --git a/examples/templates/aws-windows/main.tf b/examples/templates/aws-windows/main.tf index 6ff855ddb100b..d38191127e331 100644 --- a/examples/templates/aws-windows/main.tf +++ b/examples/templates/aws-windows/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } } } @@ -99,7 +99,7 @@ EOT resource "aws_instance" "dev" { ami = data.aws_ami.windows.id availability_zone = "${var.region}a" - instance_type = "${var.instance_type}" + instance_type = var.instance_type count = 1 user_data = data.coder_workspace.me.transition == "start" ? local.user_data_start : local.user_data_end @@ -110,3 +110,19 @@ resource "aws_instance" "dev" { } } + +resource "coder_metadata" "workspace_info" { + resource_id = aws_instance.dev.id + item { + key = "region" + value = var.region + } + item { + key = "instance type" + value = aws_instance.dev.instance_type + } + item { + key = "disk size" + value = "${aws_instance.dev.root_block_device[0].volume_size} GB" + } +} From c7cbeca95359d147bf3ecc9b320f1755391a15d5 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 11:45:11 +0000 Subject: [PATCH 3/9] add metadata to Azure --- examples/templates/azure-linux/main.tf | 29 +++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/examples/templates/azure-linux/main.tf b/examples/templates/azure-linux/main.tf index 2406d6a5901bb..1252a4533ec26 100644 --- a/examples/templates/azure-linux/main.tf +++ b/examples/templates/azure-linux/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } azurerm = { source = "hashicorp/azurerm" @@ -89,9 +89,9 @@ locals { prefix = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}" userdata = templatefile("cloud-config.yaml.tftpl", { - username = lower(substr(data.coder_workspace.me.owner, 0, 32)) - init_script = base64encode(coder_agent.main.init_script) - hostname = lower(data.coder_workspace.me.name) + username = lower(substr(data.coder_workspace.me.owner, 0, 32)) + init_script = base64encode(coder_agent.main.init_script) + hostname = lower(data.coder_workspace.me.name) }) } @@ -173,7 +173,7 @@ resource "azurerm_linux_virtual_machine" "main" { name = "vm" resource_group_name = azurerm_resource_group.main.name location = azurerm_resource_group.main.location - size = var.instance_type + size = var.instance_type // cloud-init overwrites this, so the value here doesn't matter admin_username = "adminuser" admin_ssh_key { @@ -209,3 +209,22 @@ resource "azurerm_virtual_machine_data_disk_attachment" "home" { lun = "10" caching = "ReadWrite" } + +resource "coder_metadata" "workspace_info" { + count = data.coder_workspace.me.start_count + resource_id = azurerm_linux_virtual_machine.main[0].id + + item { + key = "type" + value = azurerm_linux_virtual_machine.main[0].size + } +} + +resource "coder_metadata" "home_info" { + resource_id = azurerm_managed_disk.home.id + + item { + key = "size" + value = "${var.home_size} GB" + } +} From 2ca9b75697519926129d9404cf29747f34d74d7e Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 11:48:49 +0000 Subject: [PATCH 4/9] just use "disk" vs" disk size" --- examples/templates/aws-linux/main.tf | 2 +- examples/templates/aws-windows/main.tf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/templates/aws-linux/main.tf b/examples/templates/aws-linux/main.tf index 61bb4dc7980e5..60e99c39e0c10 100644 --- a/examples/templates/aws-linux/main.tf +++ b/examples/templates/aws-linux/main.tf @@ -167,7 +167,7 @@ resource "coder_metadata" "workspace_info" { value = aws_instance.dev.instance_type } item { - key = "disk size" + key = "disk" value = "${aws_instance.dev.root_block_device[0].volume_size} GB" } } diff --git a/examples/templates/aws-windows/main.tf b/examples/templates/aws-windows/main.tf index d38191127e331..1e0f53a471b67 100644 --- a/examples/templates/aws-windows/main.tf +++ b/examples/templates/aws-windows/main.tf @@ -122,7 +122,7 @@ resource "coder_metadata" "workspace_info" { value = aws_instance.dev.instance_type } item { - key = "disk size" + key = "disk" value = "${aws_instance.dev.root_block_device[0].volume_size} GB" } } From 8d70cee1ae2b34be671b053831cc0db322c2e48d Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 11:58:09 +0000 Subject: [PATCH 5/9] add metadata to GCP templates --- examples/templates/gcp-linux/main.tf | 21 ++++++++++++++++++++- examples/templates/gcp-vm-container/main.tf | 12 +++++++++++- examples/templates/gcp-windows/main.tf | 20 +++++++++++++++++++- 3 files changed, 50 insertions(+), 3 deletions(-) diff --git a/examples/templates/gcp-linux/main.tf b/examples/templates/gcp-linux/main.tf index 9200bbacac5c5..7f60479437fa9 100644 --- a/examples/templates/gcp-linux/main.tf +++ b/examples/templates/gcp-linux/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } google = { source = "hashicorp/google" @@ -91,3 +91,22 @@ locals { # Ensure Coder username is a valid Linux username linux_user = lower(substr(data.coder_workspace.me.owner, 0, 32)) } + +resource "coder_metadata" "workspace_info" { + count = data.coder_workspace.me.start_count + resource_id = google_compute_instance.dev[0].id + + item { + key = "type" + value = google_compute_instance.dev[0].machine_type + } +} + +resource "coder_metadata" "home_info" { + resource_id = google_compute_disk.root.id + + item { + key = "size" + value = "${google_compute_disk.root.size} GB" + } +} diff --git a/examples/templates/gcp-vm-container/main.tf b/examples/templates/gcp-vm-container/main.tf index fc6ab396144df..59b0b266f084c 100644 --- a/examples/templates/gcp-vm-container/main.tf +++ b/examples/templates/gcp-vm-container/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } google = { source = "hashicorp/google" @@ -88,3 +88,13 @@ resource "coder_agent_instance" "dev" { agent_id = coder_agent.main.id instance_id = google_compute_instance.dev[0].instance_id } + +resource "coder_metadata" "workspace_info" { + count = data.coder_workspace.me.start_count + resource_id = google_compute_instance.dev[0].id + + item { + key = "image" + value = module.gce-container.container.image + } +} diff --git a/examples/templates/gcp-windows/main.tf b/examples/templates/gcp-windows/main.tf index 568183ab2834f..781d86c4363e2 100644 --- a/examples/templates/gcp-windows/main.tf +++ b/examples/templates/gcp-windows/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } google = { source = "hashicorp/google" @@ -75,3 +75,21 @@ resource "google_compute_instance" "dev" { serial-port-enable = "TRUE" } } +resource "coder_metadata" "workspace_info" { + count = data.coder_workspace.me.start_count + resource_id = google_compute_instance.dev[0].id + + item { + key = "type" + value = google_compute_instance.dev[0].machine_type + } +} + +resource "coder_metadata" "home_info" { + resource_id = google_compute_disk.root.id + + item { + key = "size" + value = "${google_compute_disk.root.size} GB" + } +} From 27057cd8924715a14df2d5d78ed3f5e0a3f2fa22 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 12:05:17 +0000 Subject: [PATCH 6/9] add metadata to DigitalOcean --- examples/templates/do-linux/main.tf | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/examples/templates/do-linux/main.tf b/examples/templates/do-linux/main.tf index 499b2ed42a80e..1100aa976d233 100644 --- a/examples/templates/do-linux/main.tf +++ b/examples/templates/do-linux/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { coder = { source = "coder/coder" - version = "0.4.3" + version = "0.4.5" } digitalocean = { source = "digitalocean/digitalocean" @@ -133,3 +133,27 @@ resource "digitalocean_project_resources" "project" { digitalocean_volume.home_volume.urn ] } + +resource "coder_metadata" "workspace-info" { + count = data.coder_workspace.me.start_count + resource_id = digitalocean_droplet.workspace[0].id + + item { + key = "region" + value = digitalocean_droplet.workspace[0].region + } + item { + key = "image" + value = digitalocean_droplet.workspace[0].image + } +} + +resource "coder_metadata" "volume-info" { + resource_id = digitalocean_volume.home_volume.id + + item { + key = "size" + value = "${digitalocean_volume.home_volume.size} GB" + } + +} From cd07ba17f89b9723d66f4ca241bcb69dbf95360f Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 12:09:32 +0000 Subject: [PATCH 7/9] remove metadata from docker-code-server --- examples/templates/docker-code-server/main.tf | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/examples/templates/docker-code-server/main.tf b/examples/templates/docker-code-server/main.tf index 281fdf9afb470..d044cb840fe6e 100644 --- a/examples/templates/docker-code-server/main.tf +++ b/examples/templates/docker-code-server/main.tf @@ -81,14 +81,3 @@ resource "docker_container" "workspace" { volume_name = docker_volume.home_volume.name read_only = false } -} - -resource "coder_metadata" "container_info" { - count = data.coder_workspace.me.start_count - resource_id = docker_container.workspace[0].id - - item { - key = "image" - value = var.docker_image - } -} From 637e064f799664046c29526b0b24097254eca4fc Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 19:30:20 +0000 Subject: [PATCH 8/9] fix closing bracket --- examples/templates/docker-code-server/main.tf | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/templates/docker-code-server/main.tf b/examples/templates/docker-code-server/main.tf index d044cb840fe6e..844d183e2108e 100644 --- a/examples/templates/docker-code-server/main.tf +++ b/examples/templates/docker-code-server/main.tf @@ -81,3 +81,4 @@ resource "docker_container" "workspace" { volume_name = docker_volume.home_volume.name read_only = false } +} From 2c67a57c69fd225f6f99066a40e4b382d27c65b8 Mon Sep 17 00:00:00 2001 From: Ben Date: Wed, 10 Aug 2022 19:31:35 +0000 Subject: [PATCH 9/9] GB -> GiB --- examples/templates/aws-linux/main.tf | 2 +- examples/templates/aws-windows/main.tf | 2 +- examples/templates/azure-linux/main.tf | 2 +- examples/templates/do-linux/main.tf | 2 +- examples/templates/gcp-linux/main.tf | 2 +- examples/templates/gcp-windows/main.tf | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/templates/aws-linux/main.tf b/examples/templates/aws-linux/main.tf index 60e99c39e0c10..3cc75d451300e 100644 --- a/examples/templates/aws-linux/main.tf +++ b/examples/templates/aws-linux/main.tf @@ -168,6 +168,6 @@ resource "coder_metadata" "workspace_info" { } item { key = "disk" - value = "${aws_instance.dev.root_block_device[0].volume_size} GB" + value = "${aws_instance.dev.root_block_device[0].volume_size} GiB" } } diff --git a/examples/templates/aws-windows/main.tf b/examples/templates/aws-windows/main.tf index 1e0f53a471b67..d783e98518b2c 100644 --- a/examples/templates/aws-windows/main.tf +++ b/examples/templates/aws-windows/main.tf @@ -123,6 +123,6 @@ resource "coder_metadata" "workspace_info" { } item { key = "disk" - value = "${aws_instance.dev.root_block_device[0].volume_size} GB" + value = "${aws_instance.dev.root_block_device[0].volume_size} GiB" } } diff --git a/examples/templates/azure-linux/main.tf b/examples/templates/azure-linux/main.tf index 1252a4533ec26..667a29eb06c17 100644 --- a/examples/templates/azure-linux/main.tf +++ b/examples/templates/azure-linux/main.tf @@ -225,6 +225,6 @@ resource "coder_metadata" "home_info" { item { key = "size" - value = "${var.home_size} GB" + value = "${var.home_size} GiB" } } diff --git a/examples/templates/do-linux/main.tf b/examples/templates/do-linux/main.tf index 1100aa976d233..9a8de352fe91a 100644 --- a/examples/templates/do-linux/main.tf +++ b/examples/templates/do-linux/main.tf @@ -153,7 +153,7 @@ resource "coder_metadata" "volume-info" { item { key = "size" - value = "${digitalocean_volume.home_volume.size} GB" + value = "${digitalocean_volume.home_volume.size} GiB" } } diff --git a/examples/templates/gcp-linux/main.tf b/examples/templates/gcp-linux/main.tf index 7f60479437fa9..e009116ce05e6 100644 --- a/examples/templates/gcp-linux/main.tf +++ b/examples/templates/gcp-linux/main.tf @@ -107,6 +107,6 @@ resource "coder_metadata" "home_info" { item { key = "size" - value = "${google_compute_disk.root.size} GB" + value = "${google_compute_disk.root.size} GiB" } } diff --git a/examples/templates/gcp-windows/main.tf b/examples/templates/gcp-windows/main.tf index 781d86c4363e2..3a0d2dd0b5a75 100644 --- a/examples/templates/gcp-windows/main.tf +++ b/examples/templates/gcp-windows/main.tf @@ -90,6 +90,6 @@ resource "coder_metadata" "home_info" { item { key = "size" - value = "${google_compute_disk.root.size} GB" + value = "${google_compute_disk.root.size} GiB" } }