--- # Self-managing ROOT Kustomization for PROD (mirrors clusters/dev/sync.yaml). # # Reconciles ./clusters/prod from the GitRepository so the ENTIRE prod graph — the cluster-vars # ConfigMap, the GitRepository source, platform / platform-config / the app waves, and THIS object # itself — is applied from git on every push. dev/sync.yaml carried the note "a prod overlay needs # its own sync.yaml -> ./clusters/prod"; this is it. # # WHY IT IS NOW LOAD-BEARING, not just symmetry: `clusters/base/platform.yaml` gained # `dependsOn: [flux-system]` (2026-09-01) to close the post-build substitution race — a dependent # cannot reconcile revision N until the ROOT has APPLIED revision N. Without this object there is no # `flux-system` Kustomization on prod, so `platform` would block forever on a dependency that does # not exist, and NOTHING downstream would ever reconcile. # # `wait: false` is deliberate and is what keeps the dependsOn edge deadlock-free: the root reaches # Ready on apply success without health-gating its children (platform does its own wait/health # gating). Do not "harden" this to true. apiVersion: kustomize.toolkit.fluxcd.io/v1 kind: Kustomization metadata: name: flux-system namespace: flux-system spec: interval: 10m retryInterval: 2m timeout: 5m prune: true wait: false sourceRef: kind: GitRepository name: flux-system path: ./clusters/prod