Flux CD
Flux is a CNCF Graduated project for GitOps continuous delivery on Kubernetes. Like ArgoCD, Flux follows a pull-based model: controllers running in the cluster watch a Git repository and reconcile the live state to match.
Flux vs ArgoCD
Fawkes primarily uses ArgoCD for GitOps. Flux is documented here as a reference for teams that have existing Flux installations or are evaluating alternatives.
| Feature | Flux | ArgoCD |
|---|---|---|
| Architecture | Controller-based (no server) | Server + UI + CLI |
| UI | Minimal (3rd-party) | Rich built-in UI |
| Multi-tenancy | Native | App Projects |
| Helm support | HelmRelease CRD | Helm Application |
| Image automation | ✅ Built-in | Plugin required |
| RBAC | Kubernetes-native | ArgoCD RBAC |
| Community | CNCF Graduated | CNCF Graduated |
Flux Core Components
- source-controller — Watches Git repositories, Helm repositories, and OCI registries for changes.
- kustomize-controller — Applies Kustomization objects to the cluster.
- helm-controller — Manages HelmRelease objects, driving Helm deployments.
- notification-controller — Sends alerts and receives webhooks.
- image-automation-controller — Automates image tag updates in Git.
Quick Example
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: fawkes-platform
spec:
url: https://github.com/paruff/fawkes
ref:
branch: main
interval: 1m
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: platform-apps
spec:
sourceRef:
kind: GitRepository
name: fawkes-platform
path: ./platform/apps
interval: 5m
prune: true