Flux CD 2.0: GitOps modulare con Kubernetes controllers

Flux CD 2.0 (giugno 2021) di Weaveworks: riscrittura come set di controller modulari Kubernetes. GitOps continuous deployment da Git, Helm, OCI. CNCF graduated 30 novembre 2022. Alternativa ad ArgoCD.

Open Source Flux CDWeaveworksGitOpsKubernetesCNCFOpen Source

GitOps: Git come source of truth

Il termine GitOps è coniato da Alexis Richardson (Weaveworks) nel 2017. Principio: ogni stato del cluster deve esistere in Git, e un agente nel cluster fa continuous reconciliation. Flux è il primo strumento a implementare questo modello (2017).

Da Flux 1 a Flux 2

Flux v1 (2017) era un single-purpose binary monolitico. Weaveworks e la community collaborano con Microsoft sulla GitOps Toolkit (2020), risultando in Flux v2: un set di controller Kubernetes modulari.

Flux 2.0 GA è rilasciato il 30 giugno 2021. Licenza Apache 2.0. Scritto in Go. Donato alla CNCF, graduated il 30 novembre 2022 (ArgoCD ha ottenuto lo stesso status il 6 dicembre 2022).

Architettura modulare

I controller di Flux 2:

  • source-controller — fetch sorgenti (Git, Helm repo, OCI, S3, bucket)
  • kustomize-controller — applica Kustomize build
  • helm-controller — installa e upgrade Helm release
  • notification-controller — webhook eventi
  • image-reflector-controller — policy su tag immagine
  • image-automation-controller — auto-commit su nuovi tag
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
FilosofiaController modulariApplicazione unica + UI
UINessuna ufficiale (Weave GitOps, Capacitor)Ricca, built-in
Multi-tenancyNamespace-basedProject-based
Helmhelm-controller nativohelm template
Image automationBuilt-inImage Updater (separate)
DXCLI-firstUI-first

Molti team usano entrambi: ArgoCD per dev experience UI, Flux per automation di basso livello.

Feature

  • OCI artifacts — manifest pubblicati come OCI, non solo Git
  • Multi-tenancy isolato — namespace + RBAC
  • Image automation — bump tag in Git su nuovo push registry
  • Notifications — Slack, Teams, Discord, GitHub status
  • Progressive delivery — integrazione con Flagger (canary, blue/green)
  • Sops integrazione per secrets encrypted in Git

Nel contesto italiano

Flux CD è usato in:

  • PA digitale — progetti con multi-tenant GitOps
  • Banche — dove modularità e composizione sono valore
  • MSP — gestione multi-cluster cliente
  • Team platform engineering che integrano CI + GitOps
  • Ambienti con Weaveworks (Weave GitOps Enterprise)

Dopo la chiusura di Weaveworks (febbraio 2024), il progetto è passato completamente alla community CNCF, con ControlPlane come sponsor principale.


Riferimenti: Flux CD 2.0 GA (30 giugno 2021). Weaveworks. Riscrittura come GitOps Toolkit. Licenza Apache 2.0. Scritto in Go. CNCF graduated (30 novembre 2022; ArgoCD graduated 6 dicembre 2022). Controller modulari: source, kustomize, helm, notification, image automation.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi