ADR-003: Flux CD over ArgoCD for GitOps¶
Status: Accepted Date: 2026-03-09
Context¶
Tablez needs a GitOps operator to reconcile Kubernetes state from git. The operator must support multi-environment overlays, image automation, and notifications.
Options Considered¶
| Option | Pros | Cons |
|---|---|---|
| Flux CD | Pure GitOps (no UI server), lightweight, built-in image automation + notifications, Kustomize native | No built-in UI (can add Weave GitOps) |
| ArgoCD | Rich UI, large community, application-centric model | Heavier (server + Redis + Dex), UI is an attack surface, requires more resources |
| Manual kubectl apply in CI | Simple, no extra tooling | No drift detection, no reconciliation loop |
Decision¶
Use Flux CD v2 for GitOps.
Rationale¶
- Lightweight. Flux runs as a set of controllers — no server, no Redis dependency, no UI to secure.
- Pure GitOps. Git is the only source of truth. No out-of-band changes via UI.
- Built-in image automation. Flux Image Reflector + Updater automatically detects new container images and commits updated tags to the gitops repo.
- Discord notifications. Flux Notification Controller posts deployment events to Discord natively.
- Kustomize native. No Helm templates needed for simple services. Base + overlay pattern fits our multi-environment model.
- Resource efficient. Important for running on k3s with limited resources before cloud funding.
Consequences¶
- No web UI out of the box. CLI + Discord notifications for visibility.
- Can add Weave GitOps dashboard later if visual overview needed.
- Team uses
fluxCLI for troubleshooting (not a web dashboard).