diff --git a/nix-kubernetes/coder.nix b/nix-kubernetes/coder.nix index b370ee2..5a55d01 100644 --- a/nix-kubernetes/coder.nix +++ b/nix-kubernetes/coder.nix @@ -9,6 +9,7 @@ optional = false; }; coder_workspace."me" = {}; + coder_workspace_owner."me" = {}; }; resource = { diff --git a/nix-kubernetes/default.nix b/nix-kubernetes/default.nix index ac0ae83..346c446 100644 --- a/nix-kubernetes/default.nix +++ b/nix-kubernetes/default.nix @@ -9,7 +9,7 @@ terraform.required_providers = { coder = { source = "coder/coder"; - version = "0.21.0"; + version = "2.8.0"; }; kubernetes = { source = "hashicorp/kubernetes"; diff --git a/nix-kubernetes/kubernetes.nix b/nix-kubernetes/kubernetes.nix index 43aa124..b32b0e0 100644 --- a/nix-kubernetes/kubernetes.nix +++ b/nix-kubernetes/kubernetes.nix @@ -3,16 +3,16 @@ kubernetes_pod."workspace" = { 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}"; - annotations."com.coder.user.email" = "\${data.coder_workspace.me.owner_email}"; + annotations."com.coder.user.email" = "\${data.coder_workspace_owner.me.email}"; 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/part-of" = "coder"; "com.coder.resource" = "true"; - "com.coder.user.id" = "\${data.coder_workspace.me.owner_id}"; - "com.coder.user.name" = "\${data.coder_workspace.me.owner}"; + "com.coder.user.id" = "\${data.coder_workspace_owner.me.id}"; + "com.coder.user.name" = "\${data.coder_workspace_owner.me.name}"; "com.coder.workspace.id" = "\${data.coder_workspace.me.id}"; "com.coder.workspace.name" = "\${data.coder_workspace.me.name}"; }; @@ -88,6 +88,10 @@ name = "TZ"; value = "\${data.coder_parameter.timezone.value}"; } + { + name = "NIX_CONFIG"; + value = "\${data.coder_parameter.nix_config.value}"; + } ]; resources = { requests = { @@ -148,16 +152,16 @@ }; kubernetes_persistent_volume_claim."home" = { 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}"; - annotations."com.coder.user.email" = "\${data.coder_workspace.me.owner_email}"; + annotations."com.coder.user.email" = "\${data.coder_workspace_owner.me.email}"; 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/part-of" = "coder"; "com.coder.resource" = "true"; - "com.coder.user.id" = "\${data.coder_workspace.me.owner_id}"; - "com.coder.user.name" = "\${data.coder_workspace.me.owner}"; + "com.coder.user.id" = "\${data.coder_workspace_owner.me.id}"; + "com.coder.user.name" = "\${data.coder_workspace_owner.me.name}"; "com.coder.workspace.id" = "\${data.coder_workspace.me.id}"; "com.coder.workspace.name" = "\${data.coder_workspace.me.name}"; }; @@ -170,16 +174,16 @@ }; kubernetes_persistent_volume_claim."nix-store" = { 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}"; - annotations."com.coder.user.email" = "\${data.coder_workspace.me.owner_email}"; + annotations."com.coder.user.email" = "\${data.coder_workspace_owner.me.email}"; 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/part-of" = "coder"; "com.coder.resource" = "true"; - "com.coder.user.id" = "\${data.coder_workspace.me.owner_id}"; - "com.coder.user.name" = "\${data.coder_workspace.me.owner}"; + "com.coder.user.id" = "\${data.coder_workspace_owner.me.id}"; + "com.coder.user.name" = "\${data.coder_workspace_owner.me.name}"; "com.coder.workspace.id" = "\${data.coder_workspace.me.id}"; "com.coder.workspace.name" = "\${data.coder_workspace.me.name}"; }; diff --git a/nix-kubernetes/parameters.nix b/nix-kubernetes/parameters.nix index 63b659f..0fb0a2f 100644 --- a/nix-kubernetes/parameters.nix +++ b/nix-kubernetes/parameters.nix @@ -97,5 +97,16 @@ type = "string"; 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; + }; }; }