@@ -155,17 +155,23 @@ locals {
155
155
repo_url = data. coder_parameter . repo . value
156
156
# The envbuilder provider requires a key-value map of environment variables.
157
157
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,
158
162
" CODER_AGENT_TOKEN" : coder_agent.main.token,
159
163
# Use the docker gateway if the access URL is 127.0.0.1
160
164
" 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,
162
165
# Use the docker gateway if the access URL is 127.0.0.1
163
166
" ENVBUILDER_INIT_SCRIPT" : replace (coder_agent. main . init_script , " /localhost|127\\ .0\\ .0\\ .1/" , " host.docker.internal" ),
164
167
" ENVBUILDER_FALLBACK_IMAGE" : data.coder_parameter.fallback_image.value,
165
- " ENVBUILDER_CACHE_REPO" : var.cache_repo,
166
168
" ENVBUILDER_DOCKER_CONFIG_BASE64" : try (data. kubernetes_secret . cache_repo_dockerconfig_secret [0 ]. data [" .dockerconfigjson" ], " " ),
167
169
" ENVBUILDER_PUSH_IMAGE" : var.cache_repo == " " ? " " : " true" ,
168
170
" 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",
169
175
}
170
176
}
171
177
@@ -260,49 +266,19 @@ resource "kubernetes_deployment" "main" {
260
266
image = var. cache_repo == " " ? local. devcontainer_builder_image : envbuilder_cached_image. cached . 0 . image
261
267
image_pull_policy = " Always"
262
268
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
+ }
298
280
}
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
+
306
282
resources {
307
283
requests = {
308
284
" cpu" = " 250m"
0 commit comments