GitOps: Git as source of truth
The term GitOps is coined by Alexis Richardson (Weaveworks) in 2017. Principle: every cluster state must exist in Git, and an agent in the cluster does continuous reconciliation. Flux is the first tool to implement this model (2017).
From Flux 1 to Flux 2
Flux v1 (2017) was a monolithic single-purpose binary. Weaveworks and the community collaborate with Microsoft on the GitOps Toolkit (2020), resulting in Flux v2: a set of modular Kubernetes controllers.
Flux 2.0 GA is released on 30 June 2021. Apache 2.0 licence. Written in Go. CNCF Incubating project.
Modular architecture
Flux 2 controllers:
- source-controller — fetch sources (Git, Helm repo, OCI, S3, bucket)
- kustomize-controller — applies Kustomize build
- helm-controller — installs and upgrades Helm releases
- notification-controller — event webhooks
- image-reflector-controller — image tag policies
- image-automation-controller — auto-commit on new tags
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata: { name: my-app, namespace: flux-system }
spec:
interval: 1m
url: https://github.com/org/gitops-repo
ref: { branch: main }
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata: { name: my-app }
spec:
interval: 10m
path: ./apps/prod
sourceRef: { kind: GitRepository, name: my-app }
prune: true
Flux vs ArgoCD
| Flux CD | ArgoCD | |
|---|---|---|
| Philosophy | Modular controllers | Single app + UI |
| UI | No official (Weave GitOps, Capacitor) | Rich, built-in |
| Multi-tenancy | Namespace-based | Project-based |
| Helm | Native helm-controller | helm template |
| Image automation | Built-in | Image Updater (separate) |
| DX | CLI-first | UI-first |
Many teams use both: ArgoCD for UI DX, Flux for low-level automation.
Features
- OCI artifacts — manifests published as OCI, not just Git
- Isolated multi-tenancy — namespace + RBAC
- Image automation — bump tag in Git on new registry push
- Notifications — Slack, Teams, Discord, GitHub status
- Progressive delivery — integration with Flagger (canary, blue/green)
- Sops integration for encrypted secrets in Git
In the Italian context
Flux CD is used in:
- Digital PA — multi-tenant GitOps projects
- Banks — where modularity and composition are value
- MSPs — client multi-cluster management
- Platform engineering teams integrating CI + GitOps
- Environments with Weaveworks (Weave GitOps Enterprise)
The project follows CNCF open governance, with Weaveworks as main sponsor.
References: Flux CD 2.0 GA (30 June 2021). Weaveworks. Rewrite as GitOps Toolkit. Apache 2.0 licence. Written in Go. Modular controllers: source, kustomize, helm, notification, image automation.