GitOps hat sich als Deployment-Paradigma für Kubernetes-Umgebungen durchgesetzt: Der gewünschte Cluster-Zustand wird im Git-Repository deklariert, und ein Operator synchronisiert ihn kontinuierlich mit der Realität. ArgoCD und Flux CD sind die beiden dominanten Open-Source-Implementierungen dieses Ansatzes — beide unter CNCF-Dach, beide produktionsreif, aber mit sehr unterschiedlicher Philosophie.

Dieser Artikel zeigt, wann du welches Tool wählen solltest.

Was ist GitOps?

GitOps basiert auf vier Prinzipien: Der gesamte System-Zustand ist deklarativ beschrieben, Git ist die Single Source of Truth, Änderungen werden automatisch angewendet, und Software-Agenten sorgen für Konvergenz bei Abweichungen. Der entscheidende Vorteil: Deployments werden auditierbar, reproduzierbar und sicher — ohne direkten kubectl apply-Zugriff in der CI/CD-Pipeline.

ArgoCD: UI-fokussiertes GitOps

ArgoCD (Argo Continuous Delivery) wurde 2017 von Intuit entwickelt und 2022 als CNCF Graduated Project eingestuft. Es verfolgt einen Application-zentrierten Ansatz mit eigenem CRD-Typ (Application und ApplicationSet).

Stärken von ArgoCD

  • Web-UI: ArgoCD bietet ein ausgereiftes Dashboard, das Sync-Status, Resource-Trees und Health-Checks visuell darstellt — ideal für Teams, die Sichtbarkeit über Deployments brauchen
  • ApplicationSet-Controller: Ermöglicht die automatische Generierung von Applications aus Templates — z.B. eine Application pro Git-Branch oder pro Cluster
  • Multi-Tenancy mit Projects: ArgoCD-Projects erlauben die Trennung von Teams mit unterschiedlichen Berechtigungen auf Repository- und Cluster-Ebene
  • RBAC: Feingranulare Rollen-Konfiguration via argocd-rbac-cm ConfigMap
  • Sync-Waves und Hooks: Ermöglicht komplexe Deployment-Reihenfolgen (z.B. Datenbank vor App starten)

Schwächen von ArgoCD

  • Ressourcenverbrauch: ArgoCD-Server, Application Controller und Repo Server laufen als separate Pods — höherer Memory-Footprint als Flux
  • Operator-Muster: Kein nativer Helm-Controller — Helm wird server-seitig getemplatest, was zu Drift-Problemen bei komplexen Charts führen kann
  • Bootstrap: ArgoCD selbst muss initial manuell installiert werden ("Chicken-Egg-Problem")

Flux CD: GitOps-native und modular

Flux CD wurde von Weaveworks entwickelt und existiert heute in Version 2 (Flux v2) als komplettes Redesign. Flux v2 ist ebenfalls ein CNCF Graduated Project und verfolgt einen Controller-basierten Ansatz mit spezialisierten Controllern für verschiedene Aufgaben.

Stärken von Flux

  • Modulare Architektur: Separate Controller für Git-Repos (source-controller), Kustomize (kustomize-controller), Helm (helm-controller) und Benachrichtigungen (notification-controller)
  • Echter Helm-Controller: Flux verwaltet Helm Releases als CRDs (HelmRelease) und führt Helm-Operationen nativ aus — weniger Drift-Probleme
  • Bootstrap-Selbst-Management: flux bootstrap installiert Flux über GitOps in dein eigenes Repository — Flux verwaltet sich selbst
  • OCI-Support: Flux kann direkt aus OCI-Registries pullen (z.B. Helm-Charts als OCI-Artifacts)
  • Geringerer Ressourcenverbrauch: Flux-Controller sind schlanker als ArgoCD-Komponenten

Schwächen von Flux

  • Kein natives Web-Dashboard: Flux hat keine eigene UI — Teams müssen Weave GitOps (kommerziell) oder externe Tools wie Capacitor nutzen
  • Steilere Lernkurve: Das Controller-Modell mit vielen CRD-Typen ist anfangs unübersichtlicher
  • Alert-Konfiguration komplex: Benachrichtigungen erfordern mehrere YAML-Ressourcen (Provider, Alert, Receiver)

Direktvergleich: ArgoCD vs Flux CD

Kriterium ArgoCD Flux CD
Web-UI ✅ Ausgereift, built-in ❌ Nur extern (Weave GitOps)
Helm-Support ⚠️ Server-side Templating ✅ Nativer Helm-Controller
Bootstrap Manuell GitOps-selbstverwaltend
Ressourcenverbrauch Höher (~200MB RAM) Geringer (~100MB RAM)
Multi-Tenancy ✅ ArgoCD Projects ⚠️ Via Namespaces
OCI-Registry ✅ (ab v2.5) ✅ Nativer Support
CNCF-Status Graduated Graduated
GitHub-Stars ~18k ~14k
Sync-Hooks ✅ Waves + Hooks ✅ Kustomize Patches
Self-Management ❌ App-of-Apps Muster ✅ flux bootstrap

Performance bei großen Clustern

ArgoCD skaliert gut mit dem ApplicationSet-Controller, hat aber bei sehr vielen Applications (500+) höheren Speicherbedarf im Application Controller. Flux skaliert horizontal durch seinen Controller-Ansatz besser, da jeder Controller unabhängig skalierbar ist.

Für große Multi-Cluster-Setups mit 20+ Clustern empfiehlt sich ArgoCD mit dem Cluster-Bootstrap-Ansatz oder ein dedizierted Management-Cluster-Modell.

Mein Setup: ArgoCD im Monorepo

Auf typoniels.dev betreibe ich ArgoCD auf einem K3s-Cluster mit dem App-of-Apps-Pattern:

# root-app.yaml — installiert sich selbst
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: root
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://gitlab.typoniels.de/infra/cluster-apps
    targetRevision: main
    path: apps
  destination:
    server: https://kubernetes.default.svc
    namespace: argocd
  syncPolicy:
    automated:
      prune: true
      selfHeal: true

Mit diesem Pattern verwaltet ArgoCD alle anderen Applications aus dem Git-Repo — und sich selbst.

Wann du ArgoCD wählen solltest

  • Du brauchst eine Web-UI für Ops-Teams ohne Kubernetes-Expertise
  • Du arbeitest mit komplexen, mehrstufigen Deployments (Sync-Waves)
  • Multi-Tenancy-Anforderungen mit strengen Team-Grenzen
  • Du migrierst von Spinnaker oder Jenkins X

Wann Flux CD die bessere Wahl ist

  • Du willst eine vollständig GitOps-verwaltete Infrastruktur ohne externe Abhängigkeiten
  • Helm-Charts sind dein primäres Packaging-Format
  • Du baust ein Operator-Ökosystem auf (Flux integriert besser mit dem Controller-Runtime-Pattern)
  • Ressourcen-Effizienz auf kleinen Clustern ist wichtig (Homelab, Edge)

Fazit

Beide Tools sind produktionsreif und empfehlenswert. ArgoCD gewinnt bei User Experience und Visualisierung — ideal für Unternehmen, die mehrere Teams auf einem Cluster betreiben. Flux CD gewinnt bei Architektur-Reinheit und Helm-Integration — ideal für Infrastructure Engineers, die GitOps "by default" in ihre Plattform einbauen.

Wenn du heute neu anfängst: Probiere ArgoCD zuerst wegen der Web-UI, und evaluiere Flux, wenn Helm-Releases oder Ressourcenverbrauch zum Thema werden.