chore: update deprecated usage of coder_workspace.owner* fields (#13390)

Per https://github.com/coder/terraform-provider-coder/releases/tag/v0.23.0

Performs a mechanical rename of existing usage deprecated fields in the latest version of the coder/coder provider.

Closes #13382
This commit is contained in:
Cian Johnston
2024-05-30 11:31:51 +01:00
committed by GitHub
parent 7cc96f5d40
commit e176867d77
34 changed files with 186 additions and 157 deletions
+5 -4
View File
@@ -15,13 +15,13 @@ terraform {
locals {
# Make sure to use the same field as the username field in the Artifactory
# It can be either the username or the email address.
artifactory_username = data.coder_workspace.me.owner_email
artifactory_username = data.coder_workspace_owner.me.email
artifactory_repository_keys = {
"npm" = "npm"
"python" = "python"
"go" = "go"
}
workspace_user = data.coder_workspace.me.owner
workspace_user = data.coder_workspace_owner.me.name
jfrog_host = replace(var.jfrog_url, "^https://", "")
}
@@ -30,6 +30,7 @@ data "coder_provisioner" "me" {}
provider "docker" {}
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
variable "jfrog_url" {
type = string
@@ -83,7 +84,7 @@ resource "coder_agent" "main" {
# Configure the `npm` CLI to use the Artifactory "npm" repository.
cat << EOF > ~/.npmrc
email = ${data.coder_workspace.me.owner_email}
email = ${data.coder_workspace_owner.me.email}
registry = ${var.jfrog_url}/artifactory/api/npm/${local.artifactory_repository_keys["npm"]}
EOF
jf rt curl /api/npm/auth >> .npmrc
@@ -149,7 +150,7 @@ resource "docker_container" "workspace" {
count = data.coder_workspace.me.start_count
image = docker_image.main.name
# Uses lower() to avoid Docker restriction on container names.
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
# Hostname makes the shell more user friendly: coder@my-workspace:~$
hostname = data.coder_workspace.me.name
entrypoint = ["sh", "-c", coder_agent.main.init_script]
+11 -10
View File
@@ -20,7 +20,7 @@ variable "java_image" {
}
locals {
username = data.coder_workspace.me.owner
username = data.coder_workspace_owner.me.name
images = {
"go" = var.go_image,
@@ -33,6 +33,7 @@ data "coder_provisioner" "me" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
data "coder_parameter" "container_image" {
name = "container_image"
@@ -61,10 +62,10 @@ resource "coder_agent" "main" {
EOF
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_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_AUTHOR_NAME = "${data.coder_workspace_owner.me.name}"
GIT_COMMITTER_NAME = "${data.coder_workspace_owner.me.name}"
GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}"
GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}"
}
}
@@ -91,11 +92,11 @@ resource "docker_volume" "home_volume" {
}
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
@@ -119,7 +120,7 @@ resource "coder_metadata" "home_info" {
resource "docker_container" "workspace" {
count = data.coder_workspace.me.start_count
image = local.images[data.coder_parameter.container_image.value]
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
hostname = data.coder_workspace.me.name
entrypoint = ["sh", "-c", replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")]
env = [
@@ -138,11 +139,11 @@ resource "docker_container" "workspace" {
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
+7 -6
View File
@@ -10,7 +10,7 @@ terraform {
}
locals {
username = data.coder_workspace.me.owner
username = data.coder_workspace_owner.me.name
}
data "coder_provisioner" "me" {
@@ -21,6 +21,7 @@ provider "docker" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
arch = data.coder_provisioner.me.arch
@@ -59,11 +60,11 @@ resource "docker_volume" "home_volume" {
# Add labels in Docker to keep track of orphan resources.
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
@@ -94,7 +95,7 @@ resource "docker_container" "workspace" {
count = data.coder_workspace.me.start_count
image = docker_image.main.name
# Uses lower() to avoid Docker restriction on container names.
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
# Hostname makes the shell more user friendly: coder@my-workspace:~$
hostname = data.coder_workspace.me.name
# Use the docker gateway if the access URL is 127.0.0.1
@@ -112,11 +113,11 @@ resource "docker_container" "workspace" {
# Add labels in Docker to keep track of orphan resources.
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
+2 -1
View File
@@ -52,6 +52,7 @@ provider "aws" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
data "aws_ami" "ubuntu" {
most_recent = true
@@ -167,7 +168,7 @@ resource "aws_instance" "vm" {
user_data = local.user_data
tags = {
Name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
Name = "coder-${data.coder_workspace_owner.me.name}-${data.coder_workspace.me.name}"
# Required if you are using our example policy, see template README
Coder_Provisioned = "true"
}
+2 -1
View File
@@ -142,6 +142,7 @@ provider "aws" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
data "aws_ami" "ubuntu" {
most_recent = true
@@ -249,7 +250,7 @@ resource "aws_instance" "dev" {
user_data = local.user_data
tags = {
Name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
Name = "coder-${data.coder_workspace_owner.me.name}-${data.coder_workspace.me.name}"
# Required if you are using our example policy, see template README
Coder_Provisioned = "true"
}
+2 -1
View File
@@ -142,6 +142,7 @@ provider "aws" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
data "aws_ami" "windows" {
most_recent = true
@@ -187,7 +188,7 @@ resource "aws_instance" "dev" {
user_data = data.coder_workspace.me.transition == "start" ? local.user_data_start : local.user_data_end
tags = {
Name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
Name = "coder-${data.coder_workspace_owner.me.name}-${data.coder_workspace.me.name}"
# Required if you are using our example policy, see template README
Coder_Provisioned = "true"
}
+2 -1
View File
@@ -221,6 +221,7 @@ provider "azurerm" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
arch = "amd64"
@@ -263,7 +264,7 @@ resource "coder_agent" "main" {
}
locals {
prefix = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
prefix = "coder-${data.coder_workspace_owner.me.name}-${data.coder_workspace.me.name}"
userdata = templatefile("cloud-config.yaml.tftpl", {
username = "coder" # Ensure this user/group does not exist in your VM image
+10 -9
View File
@@ -17,6 +17,7 @@ provider "docker" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
arch = data.coder_provisioner.me.arch
@@ -35,10 +36,10 @@ 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 = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner)
GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_COMMITTER_NAME = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner)
GIT_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_AUTHOR_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}"
GIT_COMMITTER_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}"
}
# The following metadata blocks are optional. They are used to display
@@ -134,11 +135,11 @@ resource "docker_volume" "workspaces" {
# Add labels in Docker to keep track of orphan resources.
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
@@ -207,7 +208,7 @@ resource "docker_container" "workspace" {
# https://github.com/coder/envbuilder/tags
image = "ghcr.io/coder/envbuilder:0.2.1"
# Uses lower() to avoid Docker restriction on container names.
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
# Hostname makes the shell more user friendly: coder@my-workspace:~$
hostname = data.coder_workspace.me.name
# Use the docker gateway if the access URL is 127.0.0.1
@@ -230,11 +231,11 @@ resource "docker_container" "workspace" {
# Add labels in Docker to keep track of orphan resources.
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
@@ -42,6 +42,7 @@ provider "kubernetes" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
arch = data.coder_provisioner.me.arch
@@ -60,10 +61,10 @@ 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 = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner)
GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_COMMITTER_NAME = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner)
GIT_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_AUTHOR_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}"
GIT_COMMITTER_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}"
}
}
@@ -89,8 +90,8 @@ resource "kubernetes_persistent_volume_claim" "workspaces" {
name = "coder-${data.coder_workspace.me.id}"
namespace = var.namespace
labels = {
"coder.owner" = data.coder_workspace.me.owner
"coder.owner_id" = data.coder_workspace.me.owner_id
"coder.owner" = data.coder_workspace_owner.me.name
"coder.owner_id" = data.coder_workspace_owner.me.id
"coder.workspace_id" = data.coder_workspace.me.id
"coder.workspace_name_at_creation" = data.coder_workspace.me.name
}
@@ -160,11 +161,11 @@ data "coder_parameter" "custom_repo_url" {
resource "kubernetes_deployment" "workspace" {
metadata {
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
namespace = var.namespace
labels = {
"coder.owner" = data.coder_workspace.me.owner
"coder.owner_id" = data.coder_workspace.me.owner_id
"coder.owner" = data.coder_workspace_owner.me.name
"coder.owner_id" = data.coder_workspace_owner.me.id
"coder.workspace_id" = data.coder_workspace.me.id
"coder.workspace_name" = data.coder_workspace.me.name
}
@@ -187,7 +188,7 @@ resource "kubernetes_deployment" "workspace" {
}
spec {
container {
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
# Find the latest version here:
# https://github.com/coder/envbuilder/tags
image = "ghcr.io/coder/envbuilder:0.2.1"
+4 -3
View File
@@ -235,6 +235,7 @@ provider "digitalocean" {
}
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
os = "linux"
@@ -259,7 +260,7 @@ resource "coder_agent" "main" {
display_name = "Home Usage"
interval = 600 # every 10 minutes
timeout = 30 # df can take a while on large filesystems
script = "coder stat disk --path /home/${lower(data.coder_workspace.me.owner)}"
script = "coder stat disk --path /home/${lower(data.coder_workspace_owner.me.name)}"
}
}
@@ -278,13 +279,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-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${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 = lower(data.coder_workspace.me.owner)
username = lower(data.coder_workspace_owner.me.name)
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
+11 -10
View File
@@ -10,7 +10,7 @@ terraform {
}
locals {
username = data.coder_workspace.me.owner
username = data.coder_workspace_owner.me.name
}
data "coder_provisioner" "me" {
@@ -21,6 +21,7 @@ provider "docker" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
arch = data.coder_provisioner.me.arch
@@ -44,10 +45,10 @@ 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 = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner)
GIT_AUTHOR_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_COMMITTER_NAME = coalesce(data.coder_workspace.me.owner_name, data.coder_workspace.me.owner)
GIT_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_AUTHOR_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}"
GIT_COMMITTER_NAME = coalesce(data.coder_workspace_owner.me.full_name, data.coder_workspace_owner.me.name)
GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}"
}
# The following metadata blocks are optional. They are used to display
@@ -142,11 +143,11 @@ resource "docker_volume" "home_volume" {
# Add labels in Docker to keep track of orphan resources.
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
@@ -177,7 +178,7 @@ resource "docker_container" "workspace" {
count = data.coder_workspace.me.start_count
image = docker_image.main.name
# Uses lower() to avoid Docker restriction on container names.
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
# Hostname makes the shell more user friendly: coder@my-workspace:~$
hostname = data.coder_workspace.me.name
# Use the docker gateway if the access URL is 127.0.0.1
@@ -196,11 +197,11 @@ resource "docker_container" "workspace" {
# Add labels in Docker to keep track of orphan resources.
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
+3 -2
View File
@@ -88,6 +88,7 @@ provider "kubernetes" {
}
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
os = "linux"
@@ -126,7 +127,7 @@ resource "coder_app" "code-server" {
resource "kubernetes_persistent_volume_claim" "home" {
metadata {
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}-home"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}-home"
namespace = var.namespace
}
wait_until_bound = false
@@ -144,7 +145,7 @@ resource "kubernetes_pod" "main" {
count = data.coder_workspace.me.start_count
metadata {
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
namespace = var.namespace
}
+5 -4
View File
@@ -61,6 +61,7 @@ data "google_compute_default_service_account" "default" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "google_compute_disk" "root" {
name = "coder-${data.coder_workspace.me.id}-root"
@@ -117,10 +118,10 @@ module "code-server" {
}
resource "google_compute_instance" "vm" {
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}-root"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}-root"
machine_type = "e2-medium"
# data.coder_workspace.me.owner == "default" is a workaround to suppress error in the terraform plan phase while creating a new workspace.
desired_status = (data.coder_workspace.me.owner == "default" || data.coder_workspace.me.start_count == 1) ? "RUNNING" : "TERMINATED"
# data.coder_workspace_owner.me.name == "default" is a workaround to suppress error in the terraform plan phase while creating a new workspace.
desired_status = (data.coder_workspace_owner.me.name == "default" || data.coder_workspace.me.start_count == 1) ? "RUNNING" : "TERMINATED"
network_interface {
network = "default"
@@ -179,7 +180,7 @@ resource "google_compute_instance" "vm" {
locals {
# Ensure Coder username is a valid Linux username
linux_user = lower(substr(data.coder_workspace.me.owner, 0, 32))
linux_user = lower(substr(data.coder_workspace_owner.me.name, 0, 32))
}
resource "coder_metadata" "workspace_info" {
+3 -2
View File
@@ -61,6 +61,7 @@ data "google_compute_default_service_account" "default" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "google_compute_disk" "root" {
name = "coder-${data.coder_workspace.me.id}-root"
@@ -139,7 +140,7 @@ resource "coder_app" "code-server" {
resource "google_compute_instance" "dev" {
zone = data.coder_parameter.zone.value
count = data.coder_workspace.me.start_count
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}-root"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}-root"
machine_type = "e2-medium"
network_interface {
network = "default"
@@ -174,7 +175,7 @@ EOMETA
locals {
# Ensure Coder username is a valid Linux username
linux_user = lower(substr(data.coder_workspace.me.owner, 0, 32))
linux_user = lower(substr(data.coder_workspace_owner.me.name, 0, 32))
}
resource "coder_metadata" "workspace_info" {
+2 -1
View File
@@ -61,6 +61,7 @@ data "google_compute_default_service_account" "default" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
auth = "google-instance-identity"
@@ -109,7 +110,7 @@ module "gce-container" {
resource "google_compute_instance" "dev" {
zone = data.coder_parameter.zone.value
count = data.coder_workspace.me.start_count
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
machine_type = "e2-medium"
network_interface {
network = "default"
+2 -1
View File
@@ -58,6 +58,7 @@ provider "google" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
data "google_compute_default_service_account" "default" {
}
@@ -82,7 +83,7 @@ resource "coder_agent" "main" {
resource "google_compute_instance" "dev" {
zone = data.coder_parameter.zone.value
count = data.coder_workspace.me.start_count
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
machine_type = "e2-medium"
network_interface {
network = "default"
+4 -3
View File
@@ -14,6 +14,7 @@ data "coder_provisioner" "me" {}
provider "incus" {}
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
data "coder_parameter" "image" {
name = "image"
@@ -96,7 +97,7 @@ resource "coder_agent" "main" {
metadata {
display_name = "Home Disk"
key = "3_home_disk"
script = "coder stat disk --path /home/${lower(data.coder_workspace.me.owner)}"
script = "coder stat disk --path /home/${lower(data.coder_workspace_owner.me.name)}"
interval = 60
timeout = 1
}
@@ -156,7 +157,7 @@ EOF
resource "incus_instance" "dev" {
running = data.coder_workspace.me.start_count == 1
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
image = incus_cached_image.image.fingerprint
config = {
@@ -273,7 +274,7 @@ EOF
}
locals {
workspace_user = lower(data.coder_workspace.me.owner)
workspace_user = lower(data.coder_workspace_owner.me.name)
pool = "coder"
repo_base_dir = data.coder_parameter.repo_base_dir.value == "~" ? "/home/${local.workspace_user}" : replace(data.coder_parameter.repo_base_dir.value, "/^~\\//", "/home/${local.workspace_user}/")
repo_dir = module.git-clone.repo_dir
+11 -10
View File
@@ -101,6 +101,7 @@ provider "kubernetes" {
}
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
os = "linux"
@@ -189,21 +190,21 @@ resource "coder_app" "code-server" {
resource "kubernetes_persistent_volume_claim" "home" {
metadata {
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}-home"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}-home"
namespace = var.namespace
labels = {
"app.kubernetes.io/name" = "coder-pvc"
"app.kubernetes.io/instance" = "coder-pvc-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
"app.kubernetes.io/instance" = "coder-pvc-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
"app.kubernetes.io/part-of" = "coder"
//Coder-specific labels.
"com.coder.resource" = "true"
"com.coder.workspace.id" = data.coder_workspace.me.id
"com.coder.workspace.name" = data.coder_workspace.me.name
"com.coder.user.id" = data.coder_workspace.me.owner_id
"com.coder.user.username" = data.coder_workspace.me.owner
"com.coder.user.id" = data.coder_workspace_owner.me.id
"com.coder.user.username" = data.coder_workspace_owner.me.name
}
annotations = {
"com.coder.user.email" = data.coder_workspace.me.owner_email
"com.coder.user.email" = data.coder_workspace_owner.me.email
}
}
wait_until_bound = false
@@ -224,20 +225,20 @@ resource "kubernetes_deployment" "main" {
]
wait_for_rollout = false
metadata {
name = "coder-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
name = "coder-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
namespace = var.namespace
labels = {
"app.kubernetes.io/name" = "coder-workspace"
"app.kubernetes.io/instance" = "coder-workspace-${lower(data.coder_workspace.me.owner)}-${lower(data.coder_workspace.me.name)}"
"app.kubernetes.io/instance" = "coder-workspace-${lower(data.coder_workspace_owner.me.name)}-${lower(data.coder_workspace.me.name)}"
"app.kubernetes.io/part-of" = "coder"
"com.coder.resource" = "true"
"com.coder.workspace.id" = data.coder_workspace.me.id
"com.coder.workspace.name" = data.coder_workspace.me.name
"com.coder.user.id" = data.coder_workspace.me.owner_id
"com.coder.user.username" = data.coder_workspace.me.owner
"com.coder.user.id" = data.coder_workspace_owner.me.id
"com.coder.user.username" = data.coder_workspace_owner.me.name
}
annotations = {
"com.coder.user.email" = data.coder_workspace.me.owner_email
"com.coder.user.email" = data.coder_workspace_owner.me.email
}
}
+4 -3
View File
@@ -86,6 +86,7 @@ data "coder_parameter" "memory" {
}
data "coder_workspace" "me" {}
data "coder_workspace_owner" "me" {}
resource "coder_agent" "main" {
os = "linux"
@@ -127,7 +128,7 @@ resource "coder_app" "code-server" {
}
locals {
workspace_tag = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
workspace_tag = "coder-${data.coder_workspace_owner.me.name}-${data.coder_workspace.me.name}"
home_volume_name = "coder_${data.coder_workspace.me.id}_home"
}
@@ -135,7 +136,7 @@ resource "nomad_namespace" "coder_workspace" {
name = local.workspace_tag
description = "Coder workspace"
meta = {
owner = data.coder_workspace.me.owner
owner = data.coder_workspace_owner.me.name
}
}
@@ -169,7 +170,7 @@ resource "nomad_job" "workspace" {
count = data.coder_workspace.me.start_count
depends_on = [nomad_csi_volume.home_volume]
jobspec = templatefile("${path.module}/workspace.nomad.tpl", {
coder_workspace_owner = data.coder_workspace.me.owner
coder_workspace_owner = data.coder_workspace_owner.me.name
coder_workspace_name = data.coder_workspace.me.name
workspace_tag = local.workspace_tag
cores = tonumber(data.coder_parameter.cpu.value)
+11 -10
View File
@@ -10,7 +10,7 @@ terraform {
}
locals {
username = data.coder_workspace.me.owner
username = data.coder_workspace_owner.me.name
}
data "coder_provisioner" "me" {
@@ -18,6 +18,7 @@ data "coder_provisioner" "me" {
data "coder_workspace" "me" {
}
data "coder_workspace_owner" "me" {}
data "coder_workspace_tags" "custom_workspace_tags" {
tags = {
@@ -77,10 +78,10 @@ resource "coder_agent" "main" {
EOF
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_COMMITTER_EMAIL = "${data.coder_workspace.me.owner_email}"
GIT_AUTHOR_NAME = "${data.coder_workspace_owner.me.name}"
GIT_COMMITTER_NAME = "${data.coder_workspace_owner.me.name}"
GIT_AUTHOR_EMAIL = "${data.coder_workspace_owner.me.email}"
GIT_COMMITTER_EMAIL = "${data.coder_workspace_owner.me.email}"
}
}
@@ -107,11 +108,11 @@ resource "docker_volume" "home_volume" {
}
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"
@@ -135,7 +136,7 @@ resource "coder_metadata" "home_info" {
resource "docker_container" "workspace" {
count = data.coder_workspace.me.start_count
image = "ubuntu:22.04"
name = "coder-${data.coder_workspace.me.owner}-${lower(data.coder_workspace.me.name)}"
name = "coder-${data.coder_workspace_owner.me.name}-${lower(data.coder_workspace.me.name)}"
hostname = data.coder_workspace.me.name
entrypoint = ["sh", "-c", replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal")]
env = [
@@ -153,11 +154,11 @@ resource "docker_container" "workspace" {
labels {
label = "coder.owner"
value = data.coder_workspace.me.owner
value = data.coder_workspace_owner.me.name
}
labels {
label = "coder.owner_id"
value = data.coder_workspace.me.owner_id
value = data.coder_workspace_owner.me.id
}
labels {
label = "coder.workspace_id"