Ga naar inhoud

gitops-delivery (ArgoCD)

Purpose: deliver the platform via GitOps — ArgoCD syncs the con-prod overlay, self-heals drift, and gives a one-action rollback.

Deploys (manifests/argo/): an AppProject (talos) + an Application (talos) in the argocd namespace, house-style after cluster-infra/argo. - Application source: this repo, targetRevision: main, path: manifests/overlays/con-prod. - syncPolicy.automated with prune + selfHeal; finalizer; revisionHistoryLimit: 5. - AppProject scopes it: only this repo as source, only namespace con-ci.

Key facts: - ArgoCD syncs everything except secrets: namespace, runner, egress, isolation. The forgejo-runner-conn Secret is delivered out-of-band (SOPS) and intentionally NOT in the overlay (ArgoCD has no KSOPS yet). - runner-build (fuse) and runner-oci are not in the overlay yet — adding them before their prerequisites (fuse plugin / rootless runtime proven) would break the sync. - ArgoCD must be able to pull the repo (repo creds; reuses the Conduction Codeberg credential like cluster-infra).

Operate: - Status: kubectl -n argocd get application talos (want Synced/Healthy). - Rollback: delete the Application → prune removes managed resources → con-ci drains. - Bootstrap steps in onboarding.md.

Deferred: KSOPS on the ArgoCD repo-server so the SOPS secret can be synced too (needs the age key in the argocd ns + a repo-server plugin) — a separate, careful change.