Introduction to Flux
Table of Contents
1 - What is Flux?
Definition
Flux is a GitOps toolkit made up of Kubernetes controllers that synchronize configurations from Git to the cluster.
Key characteristics
| Characteristic | Description |
|---|---|
| Modular | Separate and independent components |
| GitOps native | Git as the source of truth |
| CNCF Graduated | Mature project (formerly Weaveworks) |
| CLI-first | No native UI (Weave GitOps available) |
| Image Automation | Automatic image updates |
History
- 2016: Flux v1 created by Weaveworks
- 2019: Complete rewrite (Flux v2)
- 2021: Joined the CNCF as an Incubating project
- 2022: Became CNCF Graduated
- 2023: Weaveworks shuts down, Flux continues independently
🔝 Back to table of contents
2 - Modular architecture
Flux components
Role of each controller
| Controller | CRD | Role |
|---|---|---|
| Source Controller | GitRepository, HelmRepository, Bucket | Fetches sources |
| Kustomize Controller | Kustomization | Applies Kustomize manifests |
| Helm Controller | HelmRelease | Manages Helm releases |
| Notification Controller | Alert, Provider | Sends notifications |
| Image Reflector | ImageRepository, ImagePolicy | Scans registries |
| Image Automation | ImageUpdateAutomation | Updates images in Git |
Flux is a toolkit
# Vous choisissez ce dont vous avez besoin
flux install --components=source-controller,kustomize-controller
# Ou tout installer
flux install
🔝 Back to table of contents
3 - Flux vs Argo CD
Comparison table
| Criterion | Flux | Argo CD |
|---|---|---|
| Architecture | Modular toolkit | All-in-one |
| Native UI | No (Weave GitOps) | Yes, excellent |
| Image Automation | Native | Extension |
| Helm | HelmRelease CRD | Built-in |
| Multi-cluster | Distributed | Centralized |
| Learning curve | Medium | Easy |
| CNCF Status | Graduated | Graduated |
When to choose Flux?
- Preference for a CLI/pure GitOps approach
- Need for native image automation
- Modular architecture desired
- Team comfortable with Kubernetes CRDs
When to choose Argo CD?
- Need for a UI for teams
- Centralized multi-cluster management
- Team new to GitOps
- Fast developer onboarding
🔝 Back to table of contents
4 - Use cases
Companies using Flux
| Company | Usage |
|---|---|
| Microsoft | Azure Arc, AKS GitOps |
| AWS | EKS Anywhere |
| D2iQ | Kubernetes platform |
| VMware | Tanzu |
Typical scenarios
| Scenario | Description |
|---|---|
| Platform Team | Centralized cluster management |
| Image Automation | CD without a deployment pipeline |
| Multi-tenant | Isolation per namespace/repo |
| Edge | Deployment on edge clusters |
🔝 Back to table of contents
5 - Hands-on exercises
Quiz
Q1. What is the main architectural difference between Flux and Argo CD?
Answer
Flux is a modular toolkit with separate and independent controllers, while Argo CD is a monolithic all-in-one solution. With Flux, you install only the components you need.
Q2. Which Flux controller enables automatic image updates?
Answer
The Image Automation Controller (with the Image Reflector Controller) makes it possible to scan registries and automatically update image references in Git.
Q3. Does Flux have a native UI?
Answer
No, Flux does not have a native UI. However, Weave GitOps (formerly from Weaveworks) provides a UI for Flux. The Flux approach is CLI-first.
🔝 Back to table of contents
Key takeaways
- Flux = modular GitOps toolkit
- Components: Source, Kustomize, Helm, Notification, Image Controllers
- CLI-first, no native UI
- Native Image Automation (advantage over Argo CD)
- CNCF Graduated: maturity and adoption