locals { authentik_url = "http://authentik.${var.domain}-auth.svc" authentik_token = data.kubernetes_secret_v1.authentik.data["AUTHENTIK_BOOTSTRAP_TOKEN"] directus-labels = merge(local.common-labels, { "app.kubernetes.io/component" = "directus" }) directus-icon = "admin/img/directus-white.png" directus-dns_name = "directus.${local.dns_name}" directus-service = { "name" = "directus-${var.instance}" "port" = { "number" = 80 } } } data "kubernetes_secret_v1" "authentik" { metadata { name = "authentik" namespace = "${var.domain}-auth" } } data "kubernetes_ingress_v1" "authentik" { metadata { name = "authentik" namespace = "${var.domain}-auth" } } resource "kubectl_manifest" "directus_config" { count = var.extentions.directus.enable ? 1:0 yaml_body = <<-EOF apiVersion: v1 kind: ConfigMap metadata: name: "${var.component}-${var.instance}-directus" namespace: "${var.namespace}" labels: ${jsonencode(local.directus-labels)} data: PORT: "8055" DB_CLIENT: "pg" DB_DATABASE: "${var.instance}" DB_HOST: "${var.instance}-${var.component}-rw.${var.namespace}.svc" DB_PORT: "5432" STORAGE_LOCATIONS: "local" STORAGE_LOCAL_ROOT: "/var/store" ADMIN_EMAIL: "admin@${var.domain-name}" NODE_EXTRA_CA_CERTS: "/etc/local-ca/ca.crt" TELEMETRY: "false" AUTH_PROVIDERS: "VYNIL" AUTH_VYNIL_DRIVER: "openid" AUTH_VYNIL_ALLOW_PUBLIC_REGISTRATION: "true" AUTH_VYNIL_ISSUER_URL: "https://${data.kubernetes_ingress_v1.authentik.spec[0].rule[0].host}/application/o/directus-${replace(var.sub-domain, ".", "-")}-${var.instance}/.well-known/openid-configuration" AUTH_VYNIL_IDENTIFIER_KEY: "email" PUBLIC_URL: "https://${local.directus-dns_name}" EOF } resource "kubectl_manifest" "directus_secret" { count = var.extentions.directus.enable ? 1:0 ignore_fields = ["metadata.annotations"] yaml_body = <<-EOF apiVersion: "secretgenerator.mittwald.de/v1alpha1" kind: "StringSecret" metadata: name: "${var.component}-${var.instance}-directus" namespace: "${var.namespace}" labels: ${jsonencode(local.directus-labels)} spec: forceRegenerate: false fields: - fieldName: "KEY" length: "32" - fieldName: "SECRET" length: "32" - fieldName: "ADMIN_PASSWORD" length: "16" EOF } resource "kubectl_manifest" "directus_pvc" { count = var.extentions.directus.enable ? 1:0 yaml_body = <<-EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: "${var.component}-${var.instance}-directus" namespace: "${var.namespace}" labels: ${jsonencode(local.common-labels)} spec: accessModes: - "${var.extentions.directus.storage.accessMode}" resources: requests: storage: "${var.extentions.directus.storage.size}" volumeMode: "${var.extentions.directus.storage.type}" EOF } resource "kubectl_manifest" "directus_deploy" { count = var.extentions.directus.enable ? 1:0 yaml_body = <