locals { maria-labels = merge(local.common-labels, { "app.kubernetes.io/component" = "mariadb" }) mariadb-password = data.kubernetes_secret_v1.prj_mariadb_secret.data["password"] } resource "kubectl_manifest" "prj_mariadb_secret" { ignore_fields = ["metadata.annotations"] yaml_body = <<-EOF apiVersion: "secretgenerator.mittwald.de/v1alpha1" kind: "StringSecret" metadata: name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.maria-labels)} spec: forceRegenerate: false data: username: "${var.instance}" fields: - fieldName: "password" length: "32" - fieldName: "root-password" length: "32" EOF } data "kubernetes_secret_v1" "prj_mariadb_secret" { depends_on = [ kubectl_manifest.prj_mariadb_secret ] metadata { name = "${var.instance}-${var.component}" namespace = var.namespace } } resource "kubectl_manifest" "prj_mariadb" { yaml_body = <<-EOF apiVersion: mariadb.mmontes.io/v1alpha1 kind: MariaDB metadata: name: "${var.instance}-${var.component}" namespace: "${var.namespace}" labels: ${jsonencode(local.maria-labels)} spec: image: "${var.images.mariadb.registry}/${var.images.mariadb.repository}:${var.images.mariadb.tag}" imagePullPolicy: "${var.images.mariadb.pull_policy}" rootPasswordSecretKeyRef: key: root-password name: "${var.instance}-${var.component}" database: "${var.instance}" username: "${var.instance}" passwordSecretKeyRef: key: password name: "${var.instance}-${var.component}" volumeClaimTemplate: accessModes: - ReadWriteOnce resources: requests: storage: "${var.storage}" EOF }