Skip to content

Commit 2ddcd8d

Browse files
committed
chore(examples/templates/devcontainer-kubernetes): use computed env
1 parent a62e69d commit 2ddcd8d

File tree

1 file changed

+20
-44
lines changed
  • examples/templates/devcontainer-kubernetes

1 file changed

+20
-44
lines changed

examples/templates/devcontainer-kubernetes/main.tf

Lines changed: 20 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,23 @@ locals {
155155
repo_url = data.coder_parameter.repo.value
156156
# The envbuilder provider requires a key-value map of environment variables.
157157
envbuilder_env = {
158+
# ENVBUILDER_GIT_URL and ENVBUILDER_CACHE_REPO will be overridden by the provider
159+
# if the cache repo is enabled.
160+
"ENVBUILDER_GIT_URL" : local.repo_url,
161+
"ENVBUILDER_CACHE_REPO" : var.cache_repo,
158162
"CODER_AGENT_TOKEN" : coder_agent.main.token,
159163
# Use the docker gateway if the access URL is 127.0.0.1
160164
"CODER_AGENT_URL" : replace(data.coder_workspace.me.access_url, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal"),
161-
"ENVBUILDER_GIT_URL" : local.repo_url,
162165
# Use the docker gateway if the access URL is 127.0.0.1
163166
"ENVBUILDER_INIT_SCRIPT" : replace(coder_agent.main.init_script, "/localhost|127\\.0\\.0\\.1/", "host.docker.internal"),
164167
"ENVBUILDER_FALLBACK_IMAGE" : data.coder_parameter.fallback_image.value,
165-
"ENVBUILDER_CACHE_REPO" : var.cache_repo,
166168
"ENVBUILDER_DOCKER_CONFIG_BASE64" : try(data.kubernetes_secret.cache_repo_dockerconfig_secret[0].data[".dockerconfigjson"], ""),
167169
"ENVBUILDER_PUSH_IMAGE" : var.cache_repo == "" ? "" : "true",
168170
"ENVBUILDER_INSECURE" : "${var.insecure_cache_repo}",
171+
# You may need to adjust this if you get an error regarding deleting files when building the workspace.
172+
# For example, when testing in KinD, it was necessary to set `/product_name` and `/product_uuid` in
173+
# addition to `/var/run`.
174+
# "ENVBUILDER_IGNORE_PATHS": "/product_name,/product_uuid,/var/run",
169175
}
170176
}
171177

@@ -260,49 +266,19 @@ resource "kubernetes_deployment" "main" {
260266
image = var.cache_repo == "" ? local.devcontainer_builder_image : envbuilder_cached_image.cached.0.image
261267
image_pull_policy = "Always"
262268
security_context {}
263-
env {
264-
name = "CODER_AGENT_TOKEN"
265-
value = coder_agent.main.token
266-
}
267-
env {
268-
name = "CODER_AGENT_URL"
269-
value = data.coder_workspace.me.access_url
270-
}
271-
env {
272-
name = "ENVBUILDER_GIT_URL"
273-
value = local.repo_url
274-
}
275-
env {
276-
name = "ENVBUILDER_INIT_SCRIPT"
277-
value = coder_agent.main.init_script
278-
}
279-
env {
280-
name = "ENVBUILDER_FALLBACK_IMAGE"
281-
value = data.coder_parameter.fallback_image.value
282-
}
283-
env {
284-
name = "ENVBUILDER_CACHE_REPO"
285-
value = var.cache_repo
286-
}
287-
env {
288-
name = "ENVBUILDER_PUSH_IMAGE"
289-
value = var.cache_repo == "" ? "" : "true"
290-
}
291-
env {
292-
name = "ENVBUILDER_INSECURE"
293-
value = var.insecure_cache_repo
294-
}
295-
env {
296-
name = "ENVBUILDER_DOCKER_CONFIG_BASE64"
297-
value = try(data.kubernetes_secret.cache_repo_dockerconfig_secret[0].data[".dockerconfigjson"], "")
269+
270+
# Set the environment using cached_image.cached.0.env if the cache repo is enabled.
271+
# Otherwise, use the local.envbuilder_env.
272+
# You could alternatively write the environment variables to a ConfigMap or Secret
273+
# and use that as `env_from`.
274+
dynamic "env" {
275+
for_each = nonsensitive(var.cache_repo == "" ? local.envbuilder_env : envbuilder_cached_image.cached.0.env_map)
276+
content {
277+
name = env.key
278+
value = env.value
279+
}
298280
}
299-
# You may need to adjust this if you get an error regarding deleting files when building the workspace.
300-
# For example, when testing in KinD, it was necessary to set `/product_name` and `/product_uuid` in
301-
# addition to `/var/run`.
302-
# env {
303-
# name = "ENVBUILDER_IGNORE_PATHS"
304-
# value = "/product_name,/product_uuid,/var/run"
305-
# }
281+
306282
resources {
307283
requests = {
308284
"cpu" = "250m"

0 commit comments

Comments
 (0)