Skip to content

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 flux CLI for troubleshooting (not a web dashboard).