From 6b089310050a6bce1aae216f57cda261861eff87 Mon Sep 17 00:00:00 2001 From: pierre Date: Mon, 29 Jun 2026 16:12:49 +0100 Subject: [PATCH] setup env mapper for DB --- module.tf | 28 +++++++++++++++++++++++++- variables.auto.tfvars | 46 +++++++++---------------------------------- 2 files changed, 36 insertions(+), 38 deletions(-) diff --git a/module.tf b/module.tf index 580c95c..c467127 100644 --- a/module.tf +++ b/module.tf @@ -449,7 +449,17 @@ resource "kubernetes_deployment_v1" "automatic" { } } } - + dynamic "env_from" { + for_each = each.value.database != null && each.value.enabled == true ? ["${each.key}-db-mapped-terraform"] : [] + content { + dynamic "secret_ref" { + for_each = [1] + content { + name = env_from.value + } + } + } + } dynamic "env_from" { for_each = each.value.config_map_ref != null ? each.value.config_map_ref : [] content { @@ -991,6 +1001,22 @@ resource "kubernetes_secret_v1" "automatic-database-secret" { } +resource "kubernetes_secret_v1" "automatic-database-mapped-secret" { + for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true } + metadata { + name = "${each.key}-db-mapped-terraform" + namespace = coalesce(each.value.namespace, each.value.connected_namespace, each.key) + } + + data = { + "${try(each.value.database.map_name, "DB_DATABASE_NAME")}" = "${resource.bitwarden-secrets_secret.automatic_bitwarden_secret_db_name[each.key].value}" + "${try(each.value.database.map_host, "DB_DATABASE_NAME")}" = "${resource.bitwarden-secrets_secret.automatic_bitwarden_secret_db_host[each.key].value}" + "${try(each.value.database.map_password, "DB_DATABASE_NAME")}" = "${resource.bitwarden-secrets_secret.automatic_bitwarden_secret_db_password[each.key].value}" + "${try(each.value.database.map_username, "DB_DATABASE_NAME")}" = "${resource.bitwarden-secrets_secret.automatic_bitwarden_secret_db_username[each.key].value}" + } +} + + resource "bitwarden-secrets_secret" "automatic_bitwarden_secret_db_username" { for_each = { for key, value in var.kubernetes : key => value if value.database != null && value.enabled == true } key = "${each.key}__db__username" diff --git a/variables.auto.tfvars b/variables.auto.tfvars index fedf209..ae7d85c 100644 --- a/variables.auto.tfvars +++ b/variables.auto.tfvars @@ -2713,11 +2713,15 @@ kubernetes = { service_port = [8080] domain_name = "owncloud" database = { - "engine" = "mysql" - "image" = "lscr.io/linuxserver/mariadb" - "port" = 3306 - "mountPath" = "/config" - name = "owncloud" + "engine" = "mysql" + "image" = "lscr.io/linuxserver/mariadb" + "port" = 3306 + "mountPath" = "/config" + name = "owncloud" + map_username = "OWNCLOUD_DB_USERNAME" + map_name = "OWNCLOUD_DB_NAME" + map_password = "OWNCLOUD_DB_PASSWORD" + map_host = "OWNCLOUD_DB_HOST" } redis = { image = "redis" } @@ -2731,38 +2735,6 @@ kubernetes = { OWNCLOUD_DB_TYPE = { value = "mysql" } - OWNCLOUD_DB_NAME = { - value_from = { - secret_key_ref = { - name = "owncloud-db-terraform" - key = "DB_DATABASE_NAME" - } - } - } - OWNCLOUD_DB_USERNAME = { - value_from = { - secret_key_ref = { - name = "owncloud-db-terraform" - key = "DB_USERNAME" - } - } - } - OWNCLOUD_DB_PASSWORD = { - value_from = { - secret_key_ref = { - name = "owncloud-db-terraform" - key = "DB_PASSWORD" - } - } - } - OWNCLOUD_DB_HOST = { - value_from = { - secret_key_ref = { - name = "owncloud-db-terraform" - key = "DB_HOST" - } - } - } OWNCLOUD_ADMIN_USERNAME = { value = "admin" }