Greenfield spec set for a GitOps-driven PaaS+IaaS home platform: vision & requirements (R-* IDs), architecture, 14 domain specs, 11 ADRs, roadmap (phases + workstreams), and AI-agent coordination (roles, protocol, definition-of-done, task board). Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
1.9 KiB
1.9 KiB
ADR-0004 — GitOps engine: Flux CD
- Status: Accepted
- Date: 2026-08-15
- Serves: R-GITOPS-01, R-GITOPS-02, R-GITOPS-03, R-UPD-02, R-SEC-01, R-ENV-02
- Supersedes: —
Context
All desired state must be reconciled from git (pull-based), with drift correction, environment overlays (dev↔prod), encrypted secrets, and — critically — hands-off image updates driven by declared policy (R-UPD-02). The GitOps engine choice is tightly coupled to the update mechanism and the secrets model.
Decision
Use Flux CD for reconciliation, chosen decisively because it natively provides the two capabilities that matter most for this platform's hard requirements:
- image-update-automation (image-reflector + image-automation controllers) for policy-driven, no-human image updates (R-UPD-02, ADR-0009).
- native SOPS decryption for encrypted-in-git secrets (R-SEC-01, ADR-0007). Flux Kustomize/Helm controllers handle overlays (dev↔prod, R-ENV-02) and chart-based platform components.
Alternatives considered
- Argo CD — excellent UI and ApplicationSets; but image auto-update (Argo Image Updater) and secret decryption are add-ons rather than first-class, and the platform gets its UI from the C2 composition (12) rather than from the GitOps tool. Reasonable alternative; Flux wins on native image-automation + SOPS fit.
- Rancher Fleet / Kustomize-only + CI push — weaker fit for the automated-update and drift requirements.
Consequences
- Native, first-class path to R-UPD-02 (no bolt-on for automated updates) and R-SEC-01 (SOPS).
- GitOps status/health is surfaced in the C2 UI via Headlamp/Flux views (12), not via a bundled GitOps GUI.
- Reconciliation failures/drift are alerting conditions (R-OBS-04).
- If a rich built-in GitOps GUI later becomes a priority, revisit via superseding ADR (Argo).