Skip to content

Commit 908e257

Browse files
committed
Update how images are set to avoid deploy failures
Currently, deploys will fail if existing copies of our deployments can't be found, even if values for all the images have been specified in image_overrides. This commit updates the config to only require existing image values when they're actually needed.
1 parent 089ac76 commit 908e257

File tree

5 files changed

+39
-30
lines changed

5 files changed

+39
-30
lines changed

archivematica/prod_cluster/archivematica_deployment.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
data "kubernetes_resource" "archivematica_prod" {
2+
count = local.need_images ? 1 : 0
23
kind = "Deployment"
34
api_version = "apps/v1"
45
metadata { name = "archivematica-prod" }
@@ -563,6 +564,7 @@ resource "kubernetes_deployment" "archivematica_prod" {
563564
}
564565

565566
data "kubernetes_resource" "mcp_client_prod" {
567+
count = local.need_images ? 1 : 0
566568
kind = "Deployment"
567569
api_version = "apps/v1"
568570
metadata { name = "archivematica-mcp-client-prod" }
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
locals {
2+
required_images = [
3+
"archivematica-storage-service-prod",
4+
"archivematica-dashboard-prod",
5+
"archivematica-mcp-server-prod",
6+
"archivematica-mcp-client-prod",
7+
]
8+
9+
need_images = length(setsubtract(local.required_images, keys(var.image_overrides))) > 0
210
current_archivematica_prod_deploy = data.kubernetes_resource.archivematica_prod.object
311
current_mcp_client_prod_deploy = data.kubernetes_resource.mcp_client_prod.object
412

5-
current_containers = concat(
6-
try(local.current_archivematica_prod_deploy.spec.template.spec.containers),
7-
try(local.current_mcp_client_prod_deploy.spec.template.spec.containers)
13+
current_images = merge(
14+
try(for container in data.kubernetes_resource.archivematica_prod[0].object.spec.template.spec.containers : container.name => container.image }, {}),
15+
try(for container in data.kubernetes_resource.mcp_client_prod[0].object.spec.template.spec.containers : container.name => container.image }, {}),
816
)
917

10-
current_images = { for container in local.current_containers : container.name => container.image }
11-
12-
desired_images = {
13-
for name, image in local.current_images :
14-
name => (contains(keys(var.image_overrides), name)
15-
? var.image_overrides[name]
16-
: local.current_images[name]
17-
)
18-
}
18+
desired_images = merge(local.current_images, var.image_overrides)
1919
}

archivematica/test_cluster/dev_archivematica_deployment.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
data "kubernetes_resource" "archivematica_dev" {
2+
count = local.need_dev_images ? 1 : 0
23
kind = "Deployment"
34
api_version = "apps/v1"
45
metadata { name = "archivematica-dev" }
@@ -563,6 +564,7 @@ resource "kubernetes_deployment" "archivematica_dev" {
563564
}
564565

565566
data "kubernetes_resource" "mcp_client_dev" {
567+
count = local.need_dev_images ? 1 : 0
566568
kind = "Deployment"
567569
api_version = "apps/v1"
568570
metadata { name = "archivematica-mcp-client-dev" }
Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
11
locals {
2-
current_archivematica_dev_deploy = data.kubernetes_resource.archivematica_dev.object
3-
current_mcp_client_dev_deploy = data.kubernetes_resource.mcp_client_dev.object
2+
required_dev_images = [
3+
"archivematica-storage-service-dev",
4+
"archivematica-dashboard-dev",
5+
"archivematica-mcp-server-dev",
6+
"archivematica-mcp-client-dev",
7+
]
48

5-
current_archivematica_staging_deploy = data.kubernetes_resource.archivematica_staging.object
6-
current_mcp_client_staging_deploy = data.kubernetes_resource.mcp_client_staging.object
9+
required_staging_images = [
10+
"archivematica-storage-service-staging",
11+
"archivematica-dashboard-staging",
12+
"archivematica-mcp-server-staging",
13+
"archivematica-mcp-client-staging",
14+
]
715

8-
current_containers = concat(
9-
try(local.current_archivematica_dev_deploy.spec.template.spec.containers),
10-
try(local.current_mcp_client_dev_deploy.spec.template.spec.containers),
11-
try(local.current_archivematica_staging_deploy.spec.template.spec.containers),
12-
try(local.current_mcp_client_staging_deploy.spec.template.spec.containers)
13-
)
16+
need_dev_images = length(setsubtract(local.required_dev_images, keys(var.image_overrides))) > 0
17+
need_staging_images = length(setsubtract(local.required_staging_images, keys(var.image_overrides))) > 0
1418

15-
current_images = { for container in local.current_containers : container.name => container.image }
19+
current_images = merge(
20+
try({ for container in data.kubernetes_resource.archivematica_dev[0].object.spec.template.spec.containers : container.name => container.image }, {}),
21+
try({ for container in data.kubernetes_resource.mcp_client_dev[0].object.spec.template.spec.containers : container.name => container.image }, {}),
22+
try({ for container in data.kubernetes_resource.archivematica_staging[0].object.spec.template.spec.containers : container.name => container.image }, {}),
23+
try({ for container in data.kubernetes_resource.mcp_client_staging[0].object.spec.template.spec.containers : container.name => container.image }, {}),
24+
)
1625

17-
desired_images = {
18-
for name, image in local.current_images :
19-
name => (contains(keys(var.image_overrides), name)
20-
? var.image_overrides[name]
21-
: local.current_images[name]
22-
)
23-
}
26+
desired_images = merge(local.current_images, var.image_overrides)
2427
}

archivematica/test_cluster/staging_archivematica_deployment.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
data "kubernetes_resource" "archivematica_staging" {
2+
count = local.need_staging_images ? 1 : 0
23
kind = "Deployment"
34
api_version = "apps/v1"
45
metadata { name = "archivematica-staging" }
@@ -563,6 +564,7 @@ resource "kubernetes_deployment" "archivematica_staging" {
563564
}
564565

565566
data "kubernetes_resource" "mcp_client_staging" {
567+
count = local.need_staging_images ? 1 : 0
566568
kind = "Deployment"
567569
api_version = "apps/v1"
568570
metadata { name = "archivematica-mcp-client-staging" }

0 commit comments

Comments
 (0)