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. 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. 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 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)

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.

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