1.3.2Prinzip 2: Versioniert und unveränderlich
1.3.3Prinzip 3: Automatisch bezogen
1.3.4Prinzip 4: Kontinuierlich angeglichen
1.4Fragen und Missverständnisse
2Welchen Unterschied macht GitOps?
2.1Indizien aus den DORA-Studien
2.2Der Unterschied im Alltag: Geschichten eines Entwicklungsteams
2.3.3Vergleichsszenario »Mit GitOps«
2.4Kontinuierlich nach Dev deployen
2.7Ressourcen wiederherstellen
2.8Konfigurationsänderungen ausrollen
2.10Zielsysteme besser absichern
3.1Agile Empfehlung: zügiger Durchstich
3.3Eine Beispielimplementierung mit Argo CD
3.4Schritt 1: Einen Cluster starten
3.5Schritt 2: Argo CD installieren
3.5.1Ressourcentypen von Argo CD verstehen
3.6Schritt 3: Eine eigene Application erzeugen
3.7Schritt 4: Eine Änderung deployen
4.5Komponenten und Ressourcenbedarf
4.6Authentifizierung und Autorisierung
4.14Hochverfügbarkeit und Lastverteilung
4.17Fazit und Tipps zur Entscheidungsfindung
5.1Secrets lagern und verwalten
5.1.1Secrets verschlüsselt im Repo speichern
5.2.1Secrets als native Kubernetes-Secrets konsumieren
5.2.2Secrets über Sidecar-Container injizieren
5.2.3Secrets über ein CSI-Volume konsumieren
5.3Wir erweitern die Beispielimplementierung
5.3.2Datenfluss von HashiCorp Vault über ESO in den Cluster
5.3.3Schritt 1: Das Config-Repo bootstrappen
5.3.4Schritt 2: Anwendungen in neuen Namespace deployen
5.3.5Schritt 3: ESO mit HashiCorp Vault verbinden
5.3.6Schritt 4: Beispiel-Secret erstellen
5.3.7Schritt 5: Das Secret integrieren
5.3.8Schritt 6: Das Secret ändern
6Repositories und Ordner strukturieren
6.1Design des GitOps-Prozesses
6.2Kategorien von GitOps-Patterns
6.3Operator Deployment Patterns
6.5.1Branch oder Folder per Environment
6.5.3Global Environments oder Environment per Application
6.7.1Beispiel 1: Argo CD Autopilot
6.7.2Beispiel 2: GitOps Playground
6.7.3Beispiel 3: Flux Monorepo
6.7.4Beispiel 4: Flux Repo per Team
6.7.5Beispiel 5: The Path to GitOps
6.7.6Beispiel 6: Environment-Varianten
6.8.1Rolle der GitOps-Operatoren
6.8.4Teams und Environments trennen
7.1.2Kombinationen von Zuständigkeiten
7.1.3Deployment-Fluss 1: CIOps
7.1.4Deployment-Fluss 2: Schmal-GitOps
7.1.5Deployment-Fluss 3: CI-Klammer
7.1.6Deployment-Fluss 4: Übergabe
7.1.7Deployment-Fluss 5: GitOps-geführt
7.2Rollout durch den GitOps-Operator
7.2.1Rollout-Schritte im GitOps-Operator
7.2.2Timing und Koordination der Rollout-Schritte
7.2.3Intervalle der Rollout-Schritte
7.2.4Rollout im GitOps-Operator aktiv triggern
7.4.2Prüfen via GitOps-Operator
7.5CI-Server mit GitOps verwalten
8.1Gesundheitszustand feststellen
8.1.1Kubernetes-nativ mit kstatus
8.2Benachrichtigungen verschicken
8.3Ganzheitliche Herangehensweise
9.1Eindeutig ausgeschlossene Aktionen
9.4Ein Backup wiederherstellen
10.1Single-Cluster vs. Multi-Cluster
10.4Definition der Cluster API-Ressourcen
10.5Installation des Management-Clusters
10.5.1Provider konfigurieren und temporären Management-Cluster bauen
10.5.3Installation des Cluster API Operators
10.5.4Deklarative Installation des Management-Clusters
10.6Verwaltung von Workload-Clustern mit Argo CD
11.1.1Ein kurzes Tutorial zum Einstieg
11.1.2Grundbausteine von Terraform
11.1.5Eine EC2-Instanz verwalten mit TF-Controller und Flamingo
11.2.1Grundbausteine von Pulumi
11.2.2Eine EC2-Instanz verwalten mit Pulumi Kubernetes Operator
11.3.1Grundbausteine von Crossplane
11.3.2Eine EC2-Instanz verwalten mit Crossplane
12GitOps außerhalb von Kubernetes
12.1Aus den GitOps-Prinzipien folgende Verantwortlichkeiten
12.2Infrastructure-as-Code-Formate
12.4Features von GitOps-Operatoren
12.5Einen eigenen GitOps-Operator bauen
12.6Eigene GitOps-Operatoren aus der Praxis