50 lines
2.1 KiB
HCL
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.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
|
|
}
|