Flux CD 2.0: modular GitOps with Kubernetes controllers

Flux CD 2.0 (June 2021) by Weaveworks: rewrite as set of modular Kubernetes controllers. Continuous deployment GitOps from Git, Helm, OCI. CNCF graduated 30 November 2022. Alternative to ArgoCD.

Open Source Flux CDWeaveworksGitOpsKubernetesCNCFOpen Source

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. Donated to CNCF, graduated on 30 November 2022 (ArgoCD reached the same status on 6 December 2022).

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 CDArgoCD
PhilosophyModular controllersSingle app + UI
UINo official (Weave GitOps, Capacitor)Rich, built-in
Multi-tenancyNamespace-basedProject-based
HelmNative helm-controllerhelm template
Image automationBuilt-inImage Updater (separate)
DXCLI-firstUI-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)

After the closure of Weaveworks (February 2024), the project passed completely to the CNCF community, with ControlPlane as main sponsor.


References: Flux CD 2.0 GA (30 June 2021). Weaveworks. Rewrite as GitOps Toolkit. Apache 2.0 licence. Written in Go. CNCF graduated (30 November 2022; ArgoCD graduated 6 December 2022). Modular controllers: source, kustomize, helm, notification, image automation.

Need support? Under attack? Service Status
Need support? Under attack? Service Status