feat: update coder provider and add NIX_CONFIG parameter

This commit is contained in:
technofab 2025-08-02 17:56:46 +02:00
parent 54804d21c4
commit cfcc9a221c
No known key found for this signature in database
4 changed files with 32 additions and 16 deletions

View file

@ -9,6 +9,7 @@
optional = false; optional = false;
}; };
coder_workspace."me" = {}; coder_workspace."me" = {};
coder_workspace_owner."me" = {};
}; };
resource = { resource = {

View file

@ -9,7 +9,7 @@
terraform.required_providers = { terraform.required_providers = {
coder = { coder = {
source = "coder/coder"; source = "coder/coder";
version = "0.21.0"; version = "2.8.0";
}; };
kubernetes = { kubernetes = {
source = "hashicorp/kubernetes"; source = "hashicorp/kubernetes";

View file

@ -3,16 +3,16 @@
kubernetes_pod."workspace" = { kubernetes_pod."workspace" = {
count = "\${data.coder_workspace.me.start_count}"; count = "\${data.coder_workspace.me.start_count}";
metadata = { 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}"; namespace = "\${var.namespace}";
annotations."com.coder.user.email" = "\${data.coder_workspace.me.owner_email}"; annotations."com.coder.user.email" = "\${data.coder_workspace_owner.me.email}";
labels = { labels = {
"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/name" = "coder-workspace"; "app.kubernetes.io/name" = "coder-workspace";
"app.kubernetes.io/part-of" = "coder"; "app.kubernetes.io/part-of" = "coder";
"com.coder.resource" = "true"; "com.coder.resource" = "true";
"com.coder.user.id" = "\${data.coder_workspace.me.owner_id}"; "com.coder.user.id" = "\${data.coder_workspace_owner.me.id}";
"com.coder.user.name" = "\${data.coder_workspace.me.owner}"; "com.coder.user.name" = "\${data.coder_workspace_owner.me.name}";
"com.coder.workspace.id" = "\${data.coder_workspace.me.id}"; "com.coder.workspace.id" = "\${data.coder_workspace.me.id}";
"com.coder.workspace.name" = "\${data.coder_workspace.me.name}"; "com.coder.workspace.name" = "\${data.coder_workspace.me.name}";
}; };
@ -88,6 +88,10 @@
name = "TZ"; name = "TZ";
value = "\${data.coder_parameter.timezone.value}"; value = "\${data.coder_parameter.timezone.value}";
} }
{
name = "NIX_CONFIG";
value = "\${data.coder_parameter.nix_config.value}";
}
]; ];
resources = { resources = {
requests = { requests = {
@ -148,16 +152,16 @@
}; };
kubernetes_persistent_volume_claim."home" = { kubernetes_persistent_volume_claim."home" = {
metadata = { metadata = {
name = "coder-home-\${lower(data.coder_workspace.me.owner)}-\${lower(data.coder_workspace.me.name)}"; name = "coder-home-\${lower(data.coder_workspace_owner.me.name)}-\${lower(data.coder_workspace.me.name)}";
namespace = "\${var.namespace}"; namespace = "\${var.namespace}";
annotations."com.coder.user.email" = "\${data.coder_workspace.me.owner_email}"; annotations."com.coder.user.email" = "\${data.coder_workspace_owner.me.email}";
labels = { labels = {
"app.kubernetes.io/instance" = "coder-pvc-home-\${lower(data.coder_workspace.me.owner)}-\${lower(data.coder_workspace.me.name)}"; "app.kubernetes.io/instance" = "coder-pvc-home-\${lower(data.coder_workspace_owner.me.name)}-\${lower(data.coder_workspace.me.name)}";
"app.kubernetes.io/name" = "coder-pvc"; "app.kubernetes.io/name" = "coder-pvc";
"app.kubernetes.io/part-of" = "coder"; "app.kubernetes.io/part-of" = "coder";
"com.coder.resource" = "true"; "com.coder.resource" = "true";
"com.coder.user.id" = "\${data.coder_workspace.me.owner_id}"; "com.coder.user.id" = "\${data.coder_workspace_owner.me.id}";
"com.coder.user.name" = "\${data.coder_workspace.me.owner}"; "com.coder.user.name" = "\${data.coder_workspace_owner.me.name}";
"com.coder.workspace.id" = "\${data.coder_workspace.me.id}"; "com.coder.workspace.id" = "\${data.coder_workspace.me.id}";
"com.coder.workspace.name" = "\${data.coder_workspace.me.name}"; "com.coder.workspace.name" = "\${data.coder_workspace.me.name}";
}; };
@ -170,16 +174,16 @@
}; };
kubernetes_persistent_volume_claim."nix-store" = { kubernetes_persistent_volume_claim."nix-store" = {
metadata = { metadata = {
name = "coder-nix-store-\${lower(data.coder_workspace.me.owner)}-\${lower(data.coder_workspace.me.name)}"; name = "coder-nix-store-\${lower(data.coder_workspace_owner.me.name)}-\${lower(data.coder_workspace.me.name)}";
namespace = "\${var.namespace}"; namespace = "\${var.namespace}";
annotations."com.coder.user.email" = "\${data.coder_workspace.me.owner_email}"; annotations."com.coder.user.email" = "\${data.coder_workspace_owner.me.email}";
labels = { labels = {
"app.kubernetes.io/instance" = "coder-pvc-nix-store-\${lower(data.coder_workspace.me.owner)}-\${lower(data.coder_workspace.me.name)}"; "app.kubernetes.io/instance" = "coder-pvc-nix-store-\${lower(data.coder_workspace_owner.me.name)}-\${lower(data.coder_workspace.me.name)}";
"app.kubernetes.io/name" = "coder-pvc"; "app.kubernetes.io/name" = "coder-pvc";
"app.kubernetes.io/part-of" = "coder"; "app.kubernetes.io/part-of" = "coder";
"com.coder.resource" = "true"; "com.coder.resource" = "true";
"com.coder.user.id" = "\${data.coder_workspace.me.owner_id}"; "com.coder.user.id" = "\${data.coder_workspace_owner.me.id}";
"com.coder.user.name" = "\${data.coder_workspace.me.owner}"; "com.coder.user.name" = "\${data.coder_workspace_owner.me.name}";
"com.coder.workspace.id" = "\${data.coder_workspace.me.id}"; "com.coder.workspace.id" = "\${data.coder_workspace.me.id}";
"com.coder.workspace.name" = "\${data.coder_workspace.me.name}"; "com.coder.workspace.name" = "\${data.coder_workspace.me.name}";
}; };

View file

@ -97,5 +97,16 @@
type = "string"; type = "string";
mutable = true; mutable = true;
}; };
nix_config = {
name = "Nix Config";
description = ''
Nix config, will be put into $NIX_CONFIG
'';
default = "";
order = 9;
type = "string";
form_type = "textarea";
mutable = true;
};
}; };
} }