locals { pg_vars = merge([for pg in var.pg: { join("_",["LABEL_pg", pg.namespace, pg.name, pg.dbname]) = join("|",["pg", pg.namespace, pg.name, pg.dbname]) join("_",["ENGINE_pg", pg.namespace, pg.name, pg.dbname]) = "postgres@dbgate-plugin-postgres" join("_",["SERVER_pg", pg.namespace, pg.name, pg.dbname]) = join(".",[pg.name, pg.namespace, "svc"]) join("_",["PORT_pg", pg.namespace, pg.name, pg.dbname]) = "5432" join("_",["USER_pg", pg.namespace, pg.name, pg.dbname]) = pg.username }]...) pg_secrets = merge([for pg in var.pg: { join("_",["PASSWORD_pg", pg.namespace, pg.name, pg.dbname]) = join("|",["pg", pg.namespace, pg.name, pg.dbname]) }]...) pg_conns = [for pg in var.pg: join("_",["pg", pg.namespace, pg.name, pg.dbname])] maria_vars = merge([for m in var.maria: { join("_",["LABEL_maria", m.namespace, m.name]) = join("|",["maria", m.namespace, m.name]) join("_",["ENGINE_maria", m.namespace, m.name]) = "mysql@dbgate-plugin-mysql" join("_",["SERVER_maria", m.namespace, m.name]) = join(".",[m.name, m.namespace, "svc"]) join("_",["PORT_maria", m.namespace, m.name]) = "3306" join("_",["USER_maria", m.namespace, m.name]) = m.username }]...) maria_secrets = merge([for m in var.maria: { join("_",["PASSWORD_maria", m.namespace, m.name]) = join("|",["maria", m.namespace, m.name, m.dbname]) }]...) maria_conns = [for m in var.maria: join("_",["maria", m.namespace, m.name])] connections = join(",",concat(local.pg_conns, local.maria_conns)) connection_vars = merge(local.pg_vars, local.maria_vars) connection_secrets = merge(local.pg_secrets,local.maria_secrets) } resource "kubectl_manifest" "dbgate-config" { yaml_body = <<-EOF apiVersion: v1 kind: ConfigMap metadata: name: "${var.component}-${var.instance}" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} data: ${jsonencode(local.connection_vars)} EOF } resource "kubernetes_secret_v1" "dbgate-config-secret" { metadata { name = "${var.component}-${var.instance}" namespace = var.namespace } data = local.connection_secrets }