Flux ist ein Satz von Controllern für GitOps auf Kubernetes. Im Unterschied zu einer Plattform mit grafischer Oberfläche besteht Flux aus mehreren spezialisierten Controllern, die zusammen das GitOps Toolkit bilden. Das Projekt stammt von Weaveworks, wird heute von der Cloud Native Computing Foundation getragen und hat den Status Graduated.

Die Controller

  • source-controller: holt Artefakte aus Git-Repositories, Helm-Repositories, OCI-Registries oder Buckets und stellt sie im Cluster bereit. Alle anderen Controller greifen darauf zu.
  • kustomize-controller: rendert Kustomize-Overlays und wendet sie an. Über den Post-Build-Schritt lassen sich Werte wie Image-Tags oder Umgebungsvariablen zur Laufzeit ersetzen.
  • helm-controller: führt Helm-Releases aus. Anders als bei einer Push-Pipeline verwaltet er den Zustand und korrigiert Abweichungen.
  • notification-controller: verschickt Ereignisse an Chat, Ticketsystem oder Webhooks und nimmt umgekehrt Webhooks von Git-Anbietern entgegen, um sofort zu synchronisieren statt auf das Intervall zu warten.
  • image-reflector-controller und image-automation-controller: prüfen Registries auf neue Tags und schreiben aktualisierte Tags zurück ins Repository. Damit wird ein neuer Build automatisch ausgerollt – ohne dass jemand ein Manifest ändert.

Zentrale Ressourcen

apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: app
  namespace: flux-system
spec:
  interval: 1m
  url: https://git.example.org/team/app-config
  ref:
    branch: main
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: app
  namespace: flux-system
spec:
  interval: 10m
  sourceRef:
    kind: GitRepository
    name: app
  path: ./envs/prod
  prune: true
  targetNamespace: app

Der Aufbau ist bewusst komponierbar: Eine Quelle kann von mehreren Kustomizations genutzt werden, und Kustomizations können aufeinander verweisen (dependsOn), um eine Reihenfolge zu erzwingen. Das erlaubt dieselbe mehrstufige Ausroll-Logik wie Synchronisationswellen, nur über Abhängigkeiten ausgedrückt.

Abgrenzung zu Argo CD

Flux hat keine eigene Benutzeroberfläche. Wer Sichtbarkeit braucht, nutzt Drittanbieter wie Weave GitOps oder ein Dashboard. Im Gegenzug ist Flux stark bei der Automatisierung: Image-Updates, Mandantenfähigkeit über getrennte Namespaces und die Bereitstellung als Satz einzelner Controller sind ausgeprägte Stärken. Bei beiden Werkzeugen gilt: Die Wahl entscheidet weniger über Erfolg oder Misserfolg als die Disziplin, tatsächlich alles in Git zu halten und Abweichungen nicht dauerhaft von Hand zu korrigieren.

Verwandte Grundlagen: GitOps, Argo CD, Kustomize, Helm.