Training Module

Kubernetes GitOps at Scale — Matrix-Generator: Cluster × Verzeichnis kombiniert

Dieses 110-Minuten-Modul holt nach, was der Vorgängerkurs zweimal ausdrücklich als Ausblick liegen gelassen hat: Dort habt ihr gelernt, dass der Cluster-Generator automatisch eine Application pro registriertem Cluster erzeugt – heute kombiniert ihr genau diesen Mechanismus mit dem Git-Directory-Generator aus dem Modul davor, der automatisch eine Application pro Verzeichnis erzeugt. Der Matrix-Generator tut beides gleichzeitig: Er kombiniert die Parameter von genau zwei Kind-Generatoren zu jeder möglichen Kombination – bei zwei Clustern und vier Diensten also acht Application-Objekte, ohne dass ihr auch nur eines davon von Hand anlegt. Im ersten Hands-on baut ihr genau das: Den Git-Directory-Generator auf dem Verzeichnismuster services/* (die vier Dienste frontend/backend/worker/ gateway aus dem Modul „ApplicationSet & Generators”) kombiniert mit dem Cluster-Generator auf euren beiden registrierten Ziel-Clustern workload und prod aus dem Vorgängerkurs. Live seht ihr, wie aus einem einzigen ApplicationSet-Manifest acht Applications entstehen – eine je Kombination aus Dienst und Cluster. Im zweiten, kürzeren Hands-on geht ihr einer Randnotiz aus dem Vorgängerkurs nach: dem values-Feld des Cluster-Generators, mit dem sich Pro-Cluster-Parameter (z. B. eine andere targetRevision für den Produktions- als für den Staging-Cluster) in dieselbe Application-Vorlage einspeisen lassen – diesmal ohne Matrix-Kombination, mit zwei parallelen Cluster-Generatoren stattdessen. Zwei Grenzen dieses Kurses werden ausdrücklich benannt: Der Matrix-Generator kombiniert laut offizieller ArgoCD-Dokumentation aktuell nur genau zwei Kind-Generatoren, keine drei oder mehr in einem einzigen matrix-Feld – wer mehr braucht, muss einen Matrix- oder Merge-Generator als Kind-Generator in einen weiteren Matrix-Generator verschachteln, und auch das nur genau einmal. Und wenn ein Kind-Generator Parameter des anderen konsumiert (z. B. ein Label-Selector, der einen Verzeichnisnamen referenziert), muss der konsumierende Generator in der Liste nach dem produzierenden stehen – eine falsche Reihenfolge meldet der Controller als Fehler, nicht als still falsches Ergebnis. Ein kurzer Ausblick ohne eigenes Hands-on rundet ab: der Merge-Generator (vereinigt statt kombiniert) sowie SCM-Provider- und Pull-Request-Generator für automatische Repository-Entdeckung. Ausdrücklich NICHT Teil dieses Kurses: Merge-, SCM-Provider- und Pull-Request-Generator als eigenes Hands-on, sowie produktive Multi-Cluster-Topologien mit mehr als den drei Clustern aus dem Vorgängerkurs. Pflicht ist das Modul “Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator” – dieses Modul setzt dessen drei kind-Cluster und Cluster-Secrets direkt fort, statt sie zu wiederholen. Die Session läuft komplett lokal über kind (Kubernetes-in-Docker) – kein Cloud-Account, keine Kostenwirkung.

Format

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

Teilnehmende

Absolvent:innen von “Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator”, die die im Vorgängerkurs offen gelassene Kombination aus Cluster- und Verzeichnis-Generator tatsächlich bauen wollen

Voraussetzungen

Abgeschlossenes Modul “Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator” (Pflicht) – Cluster-Generator, Cluster-Secrets und die drei kind-Cluster gelten als bekannt, ebenso der Git-Directory-Generator aus dem davor liegenden Modul “ApplicationSet & Generators”, lauffähige lokale Docker-Umgebung für kind

Warum dieses Training für deine Organisation wirkt

Zwei Achsen kombiniert statt einzeln gepflegt

Statt für jede Kombination aus Dienst und Cluster eine eigene Application-Datei zu pflegen, erzeugt ein einziger Matrix-Generator automatisch jede mögliche Kombination aus zwei unabhängigen Generatoren.

Dieselbe Vorlage, unterschiedliche Werte pro Cluster

Mit dem values-Feld des Cluster-Generators fließen Pro-Cluster-Parameter wie eine abweichende Git-Revision direkt in dieselbe Application-Vorlage ein – kein separates Manifest pro Cluster nötig.

Grenzen ehrlich benannt statt verschwiegen

Der Kurs zeigt auch, wo der Matrix-Generator aufhört: nur zwei Kind-Generatoren pro Kombination, nur eine Verschachtelungsebene – das ist keine Einschränkung dieses Trainings, sondern der offiziellen ArgoCD-Implementierung.

Was Teilnehmende mitnehmen

  • Den Matrix-Generator als vierten Generator-Typ einordnen: Er kombiniert die Parameter zweier Kind-Generatoren zu jeder möglichen Kombination, statt sie wie bisher einzeln zu verwenden.
  • Einen Matrix-Generator aus Cluster-Generator (workload/prod) und Git-Directory-Generator (services/*) aufsetzen und live beobachten, wie aus vier Diensten auf zwei Clustern automatisch acht Applications entstehen.
  • Benennen können, warum in diesem Kurs bewusst der Cluster- mit dem Git-Directory-Generator kombiniert wird, statt zwei Verzeichnis-Generatoren zu kombinieren – und was pathParamPrefix löst, falls doch zwei Git-Generatoren kombiniert werden.
  • Das values-Feld des Cluster-Generators einsetzen, um Pro-Cluster-Parameter (z. B. eine unterschiedliche targetRevision) in dieselbe Application-Vorlage einzuspeisen, ohne den Matrix-Generator dafür zu brauchen.
  • Die dokumentierten Grenzen des Matrix-Generators benennen: aktuell nur zwei Kind-Generatoren pro matrix-Feld, nur eine Verschachtelungsebene für kombinierende Generatoren, sowie die zwingende Reihenfolge, wenn ein Kind-Generator Parameter eines anderen konsumiert.
  • Den Merge-Generator sowie SCM-Provider- und Pull-Request-Generator konzeptionell einordnen – bewusst ohne eigenes Hands-on zu diesen Punkten.
  • Benennen, was dieses Modul bewusst nicht behandelt: Merge-, SCM-Provider- und Pull-Request-Generator als eigenes Hands-on, sowie produktive Multi-Cluster-Topologien mit mehr als den drei Clustern aus dem Vorgängerkurs.

Für wen dieses Modul ideal ist

  • • Absolvent:innen von “Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator” oder gleichwertigen Vorkenntnissen
  • • Teams, die bereits mehrere Cluster und mehrere Dienste über ApplicationSet verwalten und beide Achsen nicht länger getrennt pflegen wollen
  • • Alle, die vor der Frage stehen, wie sich dieselbe Menge an Diensten konsistent auf mehrere Umgebungen verteilen lässt, mit pro Umgebung leicht abweichenden Parametern

Rahmendaten

  • • Dauer: 110 Minuten live (remote oder vor Ort)
  • • Format: Input, Live-Demo, zwei Hands-on-Übungen (Matrix-Generator aus Cluster- und Git-Directory-Generator; kürzerer Block zum values-Feld für Pro-Cluster-Parameter)
  • • Voraussetzungen: abgeschlossenes Modul “Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator” (Pflicht), lauffähige lokale Docker-Umgebung für kind, keine Cloud-Kostenwirkung

Modulaufbau & Agenda

  1. Recap: Matrix-Generator als offene Lücke aus dem Vorgängerkurs (10 min): kurzer Rückblick auf Cluster- und Git-Directory-Generator als bislang getrennt genutzte Mechanismen, und die Frage, was passiert, wenn beide Achsen gleichzeitig automatisiert werden sollen.

  2. Konzept: Matrix-Generator & values-Feld (20 min): der Matrix-Generator als Kombinator zweier Kind-Generatoren zu jeder möglichen Parameter-Kombination, die dokumentierten Restriktionen (genau zwei Kind-Generatoren, eine Verschachtelungsebene, Reihenfolge bei Parameter-Konsum), sowie das values-Feld des Cluster-Generators im Überblick.

  3. Hands-on 1: Matrix-Generator — Cluster × Verzeichnis (45 min, Hands-on): Git-Directory-Generator (services/*) mit Cluster-Generator (workload/prod) im selben ApplicationSet kombinieren und live beobachten, wie automatisch acht Applications entstehen.

  4. Hands-on 2: values-Feld für Pro-Cluster-Parameter (15 min, Hands-on): zwei parallele Cluster-Generatoren mit je eigenem values.revision aufsetzen und live beobachten, wie dieselbe Application-Vorlage je Cluster eine andere Git-Revision deployt.

  5. Grenzen: was dieses Modul bewusst nicht zeigt (10 min): die dokumentierten Restriktionen des Matrix-Generators im Detail, sowie eine eigene, nicht live gemessene Einschätzung zum Ressourcen-Mehrbedarf gegenüber dem Vorgängerkurs.

  6. Ausblick ohne Hands-on & Abschluss (10 min): Merge-Generator (vereinigt statt kombiniert) sowie SCM-Provider- und Pull-Request-Generator für automatische Repository-Entdeckung, jeweils ohne eigenes Hands-on.

Dieses Modul setzt das Aufbaumodul Kubernetes GitOps at Scale — Multi-Cluster mit dem ApplicationSet Cluster-Generator zwingend voraus. Die drei kind-Cluster ( hub/workload/prod) und die Cluster-Secret-Registrierung gelten als bekannt und werden hier nicht erneut hergeleitet – Hands-on 1 verwendet direkt dieselben registrierten Cluster workload und prod, diesmal kombiniert mit dem Verzeichnismuster services/* aus dem noch früheren Modul Kubernetes GitOps at Scale — ApplicationSet & Generators, das den Git-Directory-Generator bereits eingeführt hat.

Was dieses Modul bewusst nicht behandelt: Merge-, SCM-Provider- und Pull-Request-Generator als eigenes Hands-on – nur als Ausblick genannt, siehe Block 6 –, sowie produktive Multi-Cluster-Topologien mit mehr als den drei Clustern aus dem Vorgängerkurs (dieselbe Grenze gilt dort bereits und wird hier nicht aufgehoben). Kein CI/Image-Build (das leistet das Modul CI: Continuous Integration & der Build-Prozess ). Und keine Progressive Delivery – dafür gibt es das eigenständige Aufbaumodul Kubernetes Progressive Delivery — Canary & Blue-Green mit Argo Rollouts.

Hands-on Inhalte (Auszug)

Matrix-Generator anlegen

  • Ein ApplicationSet mit generators: - matrix: generators: anwenden, das einen Git-Directory-Generator (services/*) mit einem Cluster-Generator (workload/prod) kombiniert
  • Mit kubectl -n argocd get application -w live sehen, wie acht Applications entstehen – je Kombination aus Dienst und Cluster eine

Kombination statt Vereinigung bestätigen

  • Per Kontextwechsel auf workload und prod bestätigen, dass in beiden Clustern alle vier Dienste laufen, nicht nur eine Teilmenge
  • Einen fünften Dienst als neuen Ordner committen und live beobachten, wie automatisch zwei weitere Applications entstehen – ohne das ApplicationSet-Manifest anzufassen

values-Feld für Pro-Cluster-Parameter

  • Die Cluster-Secrets workload-cluster und prod-cluster mit einem eigenen Umgebungs-Label versehen (env: staging bzw. env: production)
  • Zwei parallele clusters-Generatoren mit je eigenem values.revision anwenden und beobachten, wie dieselbe Vorlage pro Cluster eine andere targetRevision deployt

Grenzen live nachvollziehen

  • Einen dritten Kind-Generator versuchsweise in dasselbe matrix-Feld einfügen und den vom Controller gemeldeten Fehler gemeinsam lesen
  • Den Unterschied zwischen einem echten Kombinationsfehler und einem nur unglücklich benannten Parameter-Konflikt einordnen

Dieses Modul ist Teil unserer Pilotphase. Gemeinsam mit euch definieren wir passende Metriken (z. B. Zeit vom Anwenden des Matrix-ApplicationSet bis zu acht bestätigt Synced/Healthy Applications) 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