Files
home-network-k3s/decisions/adr-0004-gitops-flux.md
T
jakman85andClaude Opus 4.8 e8c555cfeb Initial baseline: home platform (k3s + Longhorn) specification repository
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]>
2026-08-15 22:37:56 -05:00

36 lines
1.9 KiB
Markdown

# 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](../docs/12-command-center-ui.md)) 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](../docs/12-command-center-ui.md)),
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).