UNIFIED PATTERN: All apps follow same credential distribution FORGEJO PATTERN (now universal): 1. CNPG creates ddb-cluster-app in ddb namespace (source) 2. bootstrap.sh copies to app namespaces (cicd, iam) 3. Apps reference local copy via secretKeyRef 4. No PostSync Jobs needed CHANGES: - bootstrap.sh: Copy ddb-cluster-app to iam namespace (like cicd) - authentik-values.yaml: Reference local ddb-cluster-app via env vars - Removed: sync-db-credentials PostSync Job (not needed) - kustomization.yaml: Removed PostSync Job reference BENEFITS: ✅ Same pattern as working Forgejo ✅ No complex PostSync Jobs ✅ bootstrap.sh handles setup for future clusters ✅ Simple secretKeyRef, no cross-namespace issues ✅ ArgoCD manages applications, not secrets Database recreated with app owner (fresh migrations needed).
37 lines
1.8 KiB
YAML
37 lines
1.8 KiB
YAML
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
kind: Kustomization
|
|
# NOTE: no top-level `namespace:` transformer here (removed) - it used to
|
|
# force-rewrite metadata.namespace to "iam" on every resource in this
|
|
# kustomization, which was harmless while every manifest here only ever
|
|
# targeted the iam namespace itself. authentik-provision-job.yaml's
|
|
# RoleBindings deliberately target cicd/argocd/logging/storage (least-
|
|
# privilege access for the authentik-provisioner ServiceAccount to touch
|
|
# Secrets in those namespaces) - the namespace transformer would have
|
|
# silently rewritten all of them back to iam, breaking the RBAC. Every
|
|
# manifest in this directory already sets its own explicit
|
|
# metadata.namespace, so dropping the transformer changes nothing for the
|
|
# existing resources/.
|
|
resources:
|
|
- key-rotation-cronjob.yaml
|
|
- authentik-provision-job.yaml
|
|
- rbac-dashboard-rolebinding.yaml
|
|
|
|
# Provisioning/verification python lives in scripts/*.py (real files, linted +
|
|
# diff-friendly) and is generated into ConfigMaps here rather than embedded in
|
|
# the job YAML. disableNameSuffixHash keeps the names stable so the Jobs'
|
|
# configMap volume refs and PostSync hook-delete semantics keep working; each
|
|
# hook Job is recreated per sync so it always mounts the latest script.
|
|
configMapGenerator:
|
|
- name: authentik-provision-script
|
|
namespace: iam
|
|
files:
|
|
- authentik-provision.py=scripts/authentik-provision.py
|
|
|
|
generatorOptions:
|
|
disableNameSuffixHash: true
|
|
# authentik-migrations-job.yaml removed — redundant + broken. The authentik
|
|
# `server` entrypoint runs migrations itself; this standalone job lacked the
|
|
# authentik-secrets envFrom (Secret key missing) and always failed.
|
|
# SOPS secrets (*.enc.yaml) handled by ArgoCD SOPS plugin at sync time
|
|
# authentik/vault deployed via ArgoCD Helm source
|