From 8c7d64e37526d9b42075a69e17d36b6ef52f8e67 Mon Sep 17 00:00:00 2001 From: Matthew Creal Morgan Date: Wed, 25 Jun 2025 11:08:48 -0700 Subject: [PATCH] update sources and helm syntax (#16) --- README.md | 11 +-- copy_images.tf | 7 +- main.tf | 239 +++++++++++++++++++++++-------------------------- 3 files changed, 122 insertions(+), 135 deletions(-) diff --git a/README.md b/README.md index 4634eb5..a631255 100644 --- a/README.md +++ b/README.md @@ -71,16 +71,16 @@ sys 0m3.489s | Name | Version | |------|---------| -| [aws](#provider\_aws) | 5.94.1 | -| [aws.eecr](#provider\_aws.eecr) | 5.94.1 | -| [helm](#provider\_helm) | 2.17.0 | -| [null](#provider\_null) | 3.2.3 | +| [aws](#provider\_aws) | 6.0.0 | +| [aws.eecr](#provider\_aws.eecr) | 6.0.0 | +| [helm](#provider\_helm) | 3.0.2 | +| [null](#provider\_null) | 3.2.4 | ## Modules | Name | Source | Version | |------|--------|---------| -| [images](#module\_images) | git::https://github.e.it.census.gov/terraform-modules/aws-ecr-copy-images.git/ | tf-upgrade | +| [images](#module\_images) | git::https://github.e.it.census.gov/terraform-modules/aws-ecr-copy-images.git | tf-upgrade | ## Resources @@ -116,6 +116,7 @@ sys 0m3.489s |------|-------------| | [alertmanager\_headless\_internal\_endpoint](#output\_alertmanager\_headless\_internal\_endpoint) | headless internal endpoint for alertmanager | | [alertmanager\_internal\_endpoint](#output\_alertmanager\_internal\_endpoint) | internal endpoint for alertmanager | +| [image\_config](#output\_image\_config) | Map of image references to their full source paths | | [module\_name](#output\_module\_name) | The name of this module. | | [module\_version](#output\_module\_version) | The version of this module. | | [prometheus\_namespace](#output\_prometheus\_namespace) | namespace for prometheus | diff --git a/copy_images.tf b/copy_images.tf index 611c60a..47cff78 100644 --- a/copy_images.tf +++ b/copy_images.tf @@ -78,7 +78,7 @@ locals { } module "images" { - source = "git::https://github.e.it.census.gov/terraform-modules/aws-ecr-copy-images.git/?ref=tf-upgrade" + source = "git::https://github.e.it.census.gov/terraform-modules/aws-ecr-copy-images.git?ref=tf-upgrade" profile = var.profile application_name = var.cluster_name @@ -111,3 +111,8 @@ provider "aws" { profile = var.eecr_info.profile region = var.eecr_info.region } + +output "image_config" { + description = "Map of image references to their full source paths" + value = local.image_config +} diff --git a/main.tf b/main.tf index 0441b66..8af0705 100644 --- a/main.tf +++ b/main.tf @@ -27,133 +27,114 @@ resource "helm_release" "prometheus" { repository = "https://prometheus-community.github.io/helm-charts" timeout = 600 - # Global - set { - name = "server.web.enable-remote-write-receiver" - value = "" - } - - # Prometheus chart: - set { - name = "configmapReload.prometheus.image.repository" - value = split(":", module.images.images[local.prom_config_reload_key].dest_full_path)[0] - } - set { - name = "configmapReload.prometheus.image.tag" - value = split(":", module.images.images[local.prom_config_reload_key].dest_full_path)[1] - } - set { - name = "server.image.repository" - value = split(":", module.images.images[local.prom_key].dest_full_path)[0] - } - set { - name = "server.image.tag" - value = module.images.images[local.prom_key].tag - } - set { - name = "server.persistentVolume.storageClass" - value = var.rwo_storage_class - } - - # alertmanager subchart: - set { - name = "alertmanager.image.repository" - value = split(":", module.images.images[local.alertman_key].dest_full_path)[0] - } - set { - name = "alertmanager.image.tag" - value = module.images.images[local.alertman_key].tag - } - set { - name = "alertmanager.configmapReload.image.repository" - value = split(":", module.images.images[local.prom_config_reload_key].dest_full_path)[0] - } - set { - name = "alertmanager.configmapReload.image.tag" - value = module.images.images[local.prom_config_reload_key].tag - } - set { - name = "alertmanager.persistence.storageClass" - value = var.rwo_storage_class - } - - # kube-state-metrics subchart: - set { - name = "kube-state-metrics.image.registry" - value = module.images.images[local.ksm_key].dest_registry - } - set { - name = "kube-state-metrics.image.repository" - value = module.images.images[local.ksm_key].dest_repository - } - set { - name = "kube-state-metrics.image.tag" - value = module.images.images[local.ksm_key].tag - } - - # prometheus-node-exporter subject: - set { - name = "prometheus-node-exporter.image.registry" - value = module.images.images[local.node_exporter_key].dest_registry - } - set { - name = "prometheus-node-exporter.image.repository" - value = module.images.images[local.node_exporter_key].dest_repository - } - set { - name = "prometheus-node-exporter.image.tag" - value = module.images.images[local.node_exporter_key].tag - } - - # prometheus-pushgateway - set { - name = "prometheus-pushgateway.image.repository" - value = split(":", module.images.images[local.pushgateway_key].dest_full_path)[0] - } - set { - name = "prometheus-pushgateway.image.tag" - value = module.images.images[local.pushgateway_key].tag - } - - set { - name = "server.resources.requests.cpu" - value = "100m" - } - - set { - name = "server.resources.requests.memory" - value = "128Mi" - } - - set { - name = "server.resources.limits.cpu" - value = "1000m" - } - - set { - name = "server.resources.limits.memory" - value = "2Gi" - } - - # Autoscaling for Prometheus server - set { - name = "server.autoscaling.enabled" - value = "true" - } - - set { - name = "server.autoscaling.minReplicas" - value = "1" - } - - set { - name = "server.autoscaling.maxReplicas" - value = "5" - } - - set { - name = "server.autoscaling.targetCPUUtilizationPercentage" - value = "80" - } - + set = [ + { + name = "server.web.enable-remote-write-receiver" + value = "" + }, + { + name = "configmapReload.prometheus.image.repository" + value = split(":", module.images.images[local.prom_config_reload_key].dest_full_path)[0] + }, + { + name = "configmapReload.prometheus.image.tag" + value = split(":", module.images.images[local.prom_config_reload_key].dest_full_path)[1] + }, + { + name = "server.image.repository" + value = split(":", module.images.images[local.prom_key].dest_full_path)[0] + }, + { + name = "server.image.tag" + value = module.images.images[local.prom_key].tag + }, + { + name = "server.persistentVolume.storageClass" + value = var.rwo_storage_class + }, + { + name = "alertmanager.image.repository" + value = split(":", module.images.images[local.alertman_key].dest_full_path)[0] + }, + { + name = "alertmanager.image.tag" + value = module.images.images[local.alertman_key].tag + }, + { + name = "alertmanager.configmapReload.image.repository" + value = split(":", module.images.images[local.prom_config_reload_key].dest_full_path)[0] + }, + { + name = "alertmanager.configmapReload.image.tag" + value = module.images.images[local.prom_config_reload_key].tag + }, + { + name = "alertmanager.persistence.storageClass" + value = var.rwo_storage_class + }, + { + name = "kube-state-metrics.image.registry" + value = module.images.images[local.ksm_key].dest_registry + }, + { + name = "kube-state-metrics.image.repository" + value = module.images.images[local.ksm_key].dest_repository + }, + { + name = "kube-state-metrics.image.tag" + value = module.images.images[local.ksm_key].tag + }, + { + name = "prometheus-node-exporter.image.registry" + value = module.images.images[local.node_exporter_key].dest_registry + }, + { + name = "prometheus-node-exporter.image.repository" + value = module.images.images[local.node_exporter_key].dest_repository + }, + { + name = "prometheus-node-exporter.image.tag" + value = module.images.images[local.node_exporter_key].tag + }, + { + name = "prometheus-pushgateway.image.repository" + value = split(":", module.images.images[local.pushgateway_key].dest_full_path)[0] + }, + { + name = "prometheus-pushgateway.image.tag" + value = module.images.images[local.pushgateway_key].tag + }, + { + name = "server.resources.requests.cpu" + value = "100m" + }, + { + name = "server.resources.requests.memory" + value = "128Mi" + }, + { + name = "server.resources.limits.cpu" + value = "1000m" + }, + { + name = "server.resources.limits.memory" + value = "2Gi" + }, + { + name = "server.autoscaling.enabled" + value = "true" + }, + { + name = "server.autoscaling.minReplicas" + value = "1" + }, + { + name = "server.autoscaling.maxReplicas" + value = "5" + }, + { + name = "server.autoscaling.targetCPUUtilizationPercentage" + value = "80" + }, + ] }