Files
domain/apps/dbgate/configs.tf
2023-10-14 13:03:26 +02:00

50 lines
2.1 KiB
HCL

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, pg.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.)
connection_secrets = merge(local.pg_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
}