Training Module

Kubernetes GitOps mit Flux — Abgrenzung und Umstieg von ArgoCD

Drei Kurse dieses Repos haben eine Abgrenzung zu Flux angekündigt und sie bewusst nicht vertieft – dieses 110-Minuten-Modul löst genau dieses Versprechen ein. Statt Flux nebenbei in einer Zeile zu erwähnen, seziert ihr die Flux-Architektur strukturell gegen das bereits bekannte ArgoCD-Modell: Wo ArgoCD eine einzige Application-CRD für Quelle, Ziel und Sync-Policy verwendet, trennt Flux das in eigenständige Controller und Custom Resourcessource-controller für Herkunft ( GitRepository, HelmRepository, OCIRepository), kustomize-controller für reine Kubernetes-Manifeste über die Kustomization-CRD, und helm-controller für Helm-Releases über die HelmRelease-CRD. Im ersten Hands-on installiert ihr Flux ohne Git-Bootstrap-Assistenten per kubectl apply gegen das offizielle Install-Manifest, registriert eine GitRepository gegen dasselbe eigene Git-Repo, mit dem ihr schon im ArgoCD-Kurs gearbeitet habt, und darauf aufbauend eine Kustomization, die dieses Repo tatsächlich in Cluster-Ressourcen übersetzt – und beobachtet die Reconciliation live per flux get kustomizations. Danach seziert ihr das Dependency-Modell: Die Kustomization -Eigenschaft dependsOn erzwingt eine Reihenfolge – aber zwischen ganzen Kustomization-Objekten, deren Ready-Bedingung erfüllt sein muss, nicht zwischen einzelnen Ressourcen innerhalb eines Objekts wie bei ArgoCDs Sync-Wave-Annotation. Im zweiten Hands-on baut ihr genau das nach: zwei getrennte Kustomization-Objekte, eines mit dependsOn auf das andere, und beobachtet, wie Flux nachweislich wartet, bis die referenzierte Kustomization Ready ist, bevor die abhängige angewendet wird. Ein kurzer Ausblick ohne eigenes Hands-on rundet ab: das Umstiegs- und Koexistenz-Szenario – Flux und ArgoCD können denselben Cluster parallel bedienen, solange beide nur disjunkte Ressourcen reconcilen, und ein Umstieg lässt sich Anwendung für Anwendung durchführen –, sowie HelmRelease als Flux-Pendant zum ArgoCD-Ausblick auf Helm-Chart-als-Application-Source. Ausdrücklich NICHT Teil dieses Kurses: eine erneute Erklärung von Reconciliation-Loop und Pull-Prinzip – das gilt aus dem ArgoCD-Kurs als bekannt –, Progressive Delivery, ein eigenständiger Multi-Cluster-Hands-on und eine allgemeine GitOps-Einführung (die gibt es bereits als frei zugänglichen Artikel). Pflicht ist das Modul “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD”; empfohlen, aber keine Pflicht, sind “Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves” und “Kubernetes GitOps at Scale — ApplicationSet & Generators” – wer sie kennt, erlebt den direkten Vergleich dependsOn gegen Sync-Wave bzw. Flux gegen ApplicationSet aus erster Hand. Die Session läuft komplett lokal über Minikube ( –driver=docker) oder kind – Flux selbst läuft rein containerisiert im Cluster, ohne Cloud-Account und ohne Kostenwirkung.

Format

110 Minuten, live (remote oder vor Ort), Input & zwei Hands-on-Übungen

Teilnehmende

Absolvent:innen von “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD”, die Flux strukturiert gegen ArgoCD abgrenzen oder einen Umstieg/eine Koexistenz vorbereiten wollen

Voraussetzungen

Abgeschlossenes Modul “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD” (Pflicht) – Reconciliation-Loop und Application-CRD gelten als bekannt; “Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves” und “… ApplicationSet & Generators” empfohlen, aber keine Pflicht; lauffähige lokale Docker-Umgebung für Minikube oder kind

Warum dieses Training für deine Organisation wirkt

Kein Bauchgefühl mehr bei “ArgoCD oder Flux?”

Statt einer Zeile Ausblick bekommt ihr die strukturelle Gegenüberstellung: getrennte Controller und CRDs bei Flux gegen eine monolithische Application bei ArgoCD – als Grundlage für eine begründete Werkzeugentscheidung.

Reihenfolge erzwingen, zwei Wege verglichen

dependsOn zwischen Kustomization -Objekten und sync-wave zwischen Ressourcen einer Application lösen dieselbe Aufgabe auf zwei strukturell unterschiedlichen Ebenen – live gegenübergestellt statt nur behauptet.

Umstieg ohne Big-Bang-Risiko

Flux und ArgoCD können denselben Cluster parallel bedienen. Wer weiß, wie beide koexistieren, kann Anwendung für Anwendung umstellen, statt an einem Stichtag den ganzen Cluster umzuschalten.

Was Teilnehmende mitnehmen

  • Die Flux-Architektur benennen und gegen ArgoCD abgrenzen: source-controller, kustomize-controller und helm-controller als getrennte Controller statt einer monolithischen Application-CRD.
  • Die CRDs GitRepository (Source) und Kustomization (Reconciliation-Ziel) lesen und einordnen, im direkten Vergleich zu ArgoCDs Application, die beide Rollen in einem Objekt bündelt.
  • Flux ohne Git-Bootstrap-Assistenten per kubectl apply installieren, eine GitRepository und eine Kustomization gegen ein eigenes Git-Repo registrieren und die Reconciliation live per flux get kustomizations bestätigen.
  • Das Dependency-Modell dependsOn zwischen zwei Kustomization-Objekten aufsetzen und live beobachten, wie Flux auf die Ready-Bedingung der referenzierten Kustomization wartet, bevor die abhängige angewendet wird.
  • dependsOn strukturell von sync-wave abgrenzen können: Objekt-Granularität zwischen Kustomization-Objekten gegen Ressourcen-Granularität innerhalb einer einzigen ArgoCD-Application.
  • Das Umstiegs- und Koexistenz-Szenario sowie HelmRelease/helm-controller konzeptionell einordnen – bewusst ohne eigenes Hands-on zu diesen Punkten.
  • Benennen, was dieses Modul bewusst nicht behandelt: eine erneute Herleitung von Reconciliation-Loop und Pull-Prinzip, Progressive Delivery, ein eigenständiger Multi-Cluster-Hands-on und eine allgemeine GitOps-Einführung.

Für wen dieses Modul ideal ist

  • • Absolvent:innen von “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD” oder gleichwertigen Vorkenntnissen
  • • Teams, die in einer Werkzeugentscheidung zwischen ArgoCD und Flux stehen und eine begründete statt eine gefühlte Antwort brauchen
  • • Alle, die einen bestehenden ArgoCD-Cluster schrittweise auf Flux umstellen oder beide dauerhaft parallel betreiben wollen

Rahmendaten

  • • Dauer: 110 Minuten live (remote oder vor Ort)
  • • Format: Input, Live-Demo, zwei Hands-on-Übungen (Flux-Installation & erste GitRepository/Kustomization, dependsOn zwischen zwei Kustomizations)
  • • Voraussetzungen: abgeschlossenes Modul “Kubernetes GitOps — Deklaratives Deployment mit ArgoCD” (Pflicht), “Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves” und “… ApplicationSet & Generators” empfohlen, lauffähige lokale Docker-Umgebung für Minikube oder kind, keine Cloud-Kostenwirkung

Modulaufbau & Agenda

  1. GitOps-Recap & Rahmen (10 min): kurzer Rückblick auf Reconciliation-Loop und Application-CRD aus dem ArgoCD-Kurs – als bekannt vorausgesetzt, nicht neu hergeleitet. Die heutige Frage: Wie sieht dasselbe Grundprinzip bei einem strukturell anderen Operator aus?

  2. Flux-Architektur im Vergleich zu ArgoCD (20 min): source-controller, kustomize-controller und helm-controller als getrennte Controller statt einer monolithischen Application-CRD; GitRepository (Source) und Kustomization (Reconciliation-Ziel) als die beiden zentralen CRDs für den Hands-on-Teil.

  3. Hands-on 1: Flux installieren, GitRepository & Kustomization (30 min, Hands-on): Flux-CLI installieren, flux check –pre, Flux per kubectl apply ohne Git-Bootstrap installieren, GitRepository und Kustomization gegen das eigene Git-Repo registrieren, Reconciliation per flux get kustomizations live beobachten.

  4. Dependency-Modell: dependsOn vs. Sync-Waves (15 min): die Kustomization-Eigenschaft dependsOn im direkten Vergleich zur sync-wave-Annotation – Objekt-Granularität zwischen Kustomization-Objekten gegen Ressourcen-Granularität innerhalb einer Application.

  5. Hands-on 2: dependsOn zwischen zwei Kustomizations (25 min, Hands-on): zwei getrennte Kustomization-Objekte anlegen, eines mit dependsOn auf das andere, live beobachten, wie Flux wartet, bis die referenzierte Kustomization Ready ist, bevor die abhängige angewendet wird.

  6. Umstiegsszenario, Koexistenz & Abschluss (10 min): wie Flux und ArgoCD denselben Cluster parallel bedienen können, ohne sich gegenseitig zu stören, woran ein schrittweiser Umstieg Anwendung für Anwendung ansetzt, sowie ein Ausblick auf HelmRelease/helm-controller ohne eigenes Hands-on; Progressive Delivery, Multi-Cluster-Hands-on und allgemeine GitOps-Einführung ausdrücklich nicht Teil dieses Kurses.

Dieses Modul setzt das Aufbaumodul Kubernetes GitOps — Deklaratives Deployment mit ArgoCD zwingend voraus. Reconciliation-Loop, Push- vs. Pull-based Deployment und die Application-CRD gelten als bekannt und werden hier nicht erneut hergeleitet – Hands-on 1 registriert Flux gegen dasselbe eigene Git-Repo, mit dem dort bereits gearbeitet wurde.

Empfohlen, aber keine Pflicht, sind die Module Kubernetes GitOps at Scale — App-of-Apps & Sync-Waves und Kubernetes GitOps at Scale — ApplicationSet & Generators. Wer sie bereits abgeschlossen hat, erlebt in Block 4 und 5 den direkten Vergleich dependsOn gegen sync-wave aus erster Hand, statt ihn nur beschrieben zu bekommen; wer sie noch nicht hat, kann diesem Kurs trotzdem vollständig folgen – die Sync-Wave-Mechanik wird in Block 4 in dem Umfang eingeführt, der für die Abgrenzung nötig ist, ohne den Sync-Waves-Kurs zu wiederholen.

Was dieses Modul bewusst nicht behandelt: eine erneute Erklärung von Reconciliation-Loop und Pull-Prinzip – das steht vollständig im Modul Kubernetes GitOps — Deklaratives Deployment mit ArgoCD und gilt hier als bekannt. Ebenfalls nicht Thema: Progressive Delivery mit Argo Rollouts (Canary/Blue-Green) – dafür gibt es das eigenständige Aufbaumodul Kubernetes Progressive Delivery — Canary & Blue-Green mit Argo Rollouts. Kein eigenständiger Multi-Cluster-Hands-on: Flux’ Cluster-übergreifende Nutzung wird nicht selbst als zweiter Cluster aufgebaut – wer das ArgoCD-seitige Pendant sucht, findet es im Aufbaumodul Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator. Und keine allgemeine GitOps-Einführung – Push vs. Pull, die vier OpenGitOps-Prinzipien und ein erster Werkzeugüberblick stehen bereits im frei zugänglichen Artikel Was ist GitOps?.

Hands-on Inhalte (Auszug)

Flux ohne Git-Bootstrap installieren

  • Flux-CLI installieren, mit flux check –pre die Cluster-Voraussetzungen prüfen
  • Flux per kubectl apply gegen das offizielle Install-Manifest installieren – ohne den interaktiven Git-Provider-Bootstrap-Assistenten

GitRepository & Kustomization registrieren

  • Eine GitRepository gegen das eigene, aus dem ArgoCD-Kurs bekannte Git-Repo anwenden
  • Eine Kustomization mit sourceRef auf diese GitRepository anwenden und mit flux get kustomizations auf Ready prüfen

Zwei Kustomizations ohne Kopplung

  • Eine Kustomization für Namespace und Secret, eine zweite unabhängige Kustomization für das Deployment anlegen
  • Beide Objekte reconcilen unabhängig voneinander – ohne dependsOn gibt es keine Garantie für die Reihenfolge zwischen ihnen

Reihenfolge mit dependsOn erzwingen

  • Die Deployment-Kustomization um spec.dependsOn mit dem Namen der Namespace/Secret-Kustomization ergänzen
  • Live per flux get kustomizations –watch bestätigen, dass die abhängige Kustomization erst angewendet wird, wenn die referenzierte Ready ist

Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit von der Flux-Installation bis beide Kustomizations bestätigt Ready sind) und werten sie im Anschluss transparent aus. Ergebnisse veröffentlichen wir, sobald sie belastbar sind.

Bereit, das Modul zu buchen?

Wir passen die Hands-on-Übung auf euren Erfahrungsstand und eure Zielumgebung an.

Academy Briefing anfragen