GitOps sorgt gemeinsam mit der etablierten CI/CD-Praxis für den durchgängigen, automatisierten Fluss vom Commit bis zum laufenden System und stellt damit einen zentralen Bestandteil moderner Container-Infrastrukturen dar. Nur so können Produkte sicher, voll auditierbar und flexibel veröffentlicht werden. Wie Sie abseits von kurzlebigen Hypes resiliente, hochautomatisierte und sichere Systeme für Produktiv-Workloads aufbauen, zeigt Ihnen Oliver Liebel anhand praktischer Szenarien.
Aus dem Inhalt:
- CI/CD und GitOps: Grundlagen und Use Cases, strategische Betrachtungen
- Operator Foundations und CI/CD-GitOps-Systeme im Überblick
- GitOps (CI-Fokus) unter OpenShift/Kubernetes mit Tekton (OpenShift-Pipelines
- Pipelines mit Checks, Approval, konditionaler Ausführung, Tekton Bundles, Artifact Hubs, Pipeline Debugging
- Supply Chain Security (SLSA) in Theorie und Praxis: Sigstore, Cosign und mehr
- Pipelines für vollautomatisierte Operator-Build Prozesse, Pipelines as Code, Argo Workflows
- GitOps (CD Fokus) mit ArgoCD: Konfiguration und Management, Security, Compliance
- Applications und ApplicationSets, AppSets im RHACM Umfeld, App Projects
- Security für CI/CD-GitOps-Systeme: Secret Management, Chains, Vault, Kyverno, OPA Gatekeeper und mehr
- Argo Rollouts: Blue/Green, Canary, Extended Healthchecks, Auto-Rollbacks
- Kubernetes-Cluster via Cluster API ausrollen und mit Apps provisionieren
- IaC: Everything as Code - externe Infrastrukturen in der Cloud und on-prem souverän mit Crossplane managen
Inhaltsverzeichnis
Vorwort . . . 21
1. CI/CD und GitOps unter Kubernetes/OpenShift in Enterprise-Umgebungen . . . 23
1. 1 . . . Vorbemerkungen . . . 27
1. 2 . . . Kernziele und die rote Fäden . . . 28
1. 3 . . . Zielgruppen und verwendete Systeme . . . 29
2. Grundsätzliche strategische Überlegungen . . . 31
2. 1 . . . Entscheidungsfindung . . . 31
2. 2 . . . Changes . . . 32
2. 3 . . . CI/CD und GitOps . . . 32
2. 4 . . . Plattformgebundene vs. generische GitOps-Tools . . . 34
2. 5 . . . Ein Überblick über die Tools . . . 35
3. Preflights: Operatoren . . . 39
3. 1 . . . Operator Foundations . . . 40
3. 2 . . . Operator-Typen und Maturitätslevel . . . 48
3. 3 . . . Operator-Typen im funktionalen Vergleich: Ansible vs. Go . . . 51
3. 4 . . . OLM -- wer überwacht die Wächter? . . . 53
3. 5 . . . Operator-Management . . . 58
4. CI/CD-Pipelines und GitOps -- Überblick . . . 61
4. 1 . . . GitOps . . . 62
4. 2 . . . Git-Systeme und CI/CD- und GitOps-Tools im Vergleich . . . 64
4. 3 . . . Git-Foundations . . . 82
5. GitOps mit Tekton/OpenShift Pipelines (CI-Fokus) . . . 89
5. 1 . . . Tekton . . . 89
5. 2 . . . Tekton: Aufbau, Funktion, Konzepte und Custom Resources . . . 91
5. 3 . . . PipelineRun, Pipeline, Tasks und mehr . . . 92
5. 4 . . . Webhooks, Trigger*, EventListener und Interceptor unter Tekton . . . 118
5. 5 . . . Tekton-Setup . . . 131
5. 6 . . . Privater Tekton/Artifact Hub . . . 156
5. 7 . . . Hands-on: Simple Pipeline (Pi-Calculator) -- Build, Push & Deploy . . . 163
5. 8 . . . Pipeline mit Checks -- Vorbetrachtungen . . . 185
5. 9 . . . Pipelines mit Checks -- Überblick . . . 194
5. 10 . . . Die Pipeline »Vote-App« mit Checks und interner Registry . . . 194
5. 11 . . . Pipeline mit Checks (GitLeaks, Trivy, Golang) und Staging-Task (Skopeo) . . . 221
5. 12 . . . Pipeline mit Checks (SonarQube) . . . 232
5. 13 . . . Überblick: Supply Chain Security (CI) . . . 241
5. 14 . . . Tekton Chains (SLSA 2) . . . 246
5. 15 . . . Tekton Chains (SLSA 2) unter Vanilla Kubernetes . . . 261
5. 16 . . . Tekton Chains unter OpenShift . . . 268
5. 17 . . . Tekton-Bundles . . . 275
5. 18 . . . Tekton Pipeline für einen Operator-Build . . . 280
5. 19 . . . Debugging von Tekton-Pipelines . . . 286
5. 20 . . . Pipelines as Code . . . 290
5. 21 . . . Automatische Erzeugung von KubeVirt/OpenShift-Virtualization-VM-Images mit OpenShift Pipelines . . . 317
5. 22 . . . Argo Workflows (CI) . . . 330
6. GitOps mit Argo CD/OpenShift GitOps (CD-Fokus) . . . 343
6. 1 . . . Vorbetrachtungen . . . 343
6. 2 . . . Argo-Setup unter Vanilla Kubernetes/GKE . . . 348
6. 3 . . . OpenShift GitOps-/Argo-CD-Setup unter OpenShift . . . 351
6. 4 . . . Argo-Konfiguration und -Management . . . 353
6. 5 . . . Argo CD: Applications . . . 371
6. 6 . . . App-Projects . . . 405
6. 7 . . . Argo Notifications . . . 412
6. 8 . . . Argo ApplicationSets . . . 423
6. 9 . . . Argo ApplicationSets (Argo-CD-nativ) . . . 429
6. 10 . . . Argo-ApplicationSets unter RHACM . . . 434
6. 11 . . . Argo Resource Health . . . 442
7. Security für CI/CD- und GitOps-Systeme mit Policies as Code . . . 451
7. 1 . . . Tool-Überblick: Kyverno, OPA Gatekeeper, Kubewarden . . . 452
7. 2 . . . Kyverno-Policies . . . 453
7. 3 . . . OPA Gatekeeper . . . 463
7. 4 . . . OPA Gatekeeper vs. Kyverno . . . 470
8. Secret-Management für CI/CD und GitOps -- Überblick . . . 473
8. 1 . . . Die Problematik . . . 473
8. 2 . . . Tools und Konzepte im Überblick . . . 474
9. Secret-Management für GitOps-Szenarien -- Hands-on . . . 481
9. 1 . . . HashiCorp Vault -- Überblick . . . 481
9. 2 . . . Vault-Cluster -- Setup . . . 490
9. 3 . . . Vault Agent Sidecar Injector . . . 499
9. 4 . . . Vault Secrets Operator . . . 506
9. 5 . . . Argo CD Vault Plugin . . . 514
9. 6 . . . External Secrets Operator (Google Secret Manager) . . . 521
9. 7 . . . External Secrets Operator unter OpenShift mit Vault-Backend . . . 529
9. 8 . . . Vault CSI Provider / Secrets Store CSI Driver . . . 533
9. 9 . . . Sealed Secrets (Bitnami) . . . 539
10. Argo Rollouts . . . 547
10. 1 . . . Update-Strategien für Pods im Überblick . . . 547
10. 2 . . . Fortgeschrittene Update-Verfahren mit Argo Rollouts . . . 552
10. 3 . . . Die Rollout-Ressourcen im Detail: Canary und Blue/Green . . . 560
10. 4 . . . Argo Rollouts: Hands-on . . . 567
10. 5 . . . Argo Rollouts unter OpenShift . . . 579
10. 6 . . . Argo-Experiments . . . 593
11. GitOps -- IaC: Kubernetes-Workload-Cluster mit der Cluster API ausrollen . . . 595
11. 1 . . . Die Cluster API . . . 595
11. 2 . . . CAPI und kubeadm, Alternativen . . . 602
11. 3 . . . Hands-on: Setup eines Workload-Clusters per CAPI unter GKE . . . 608
11. 4 . . . IaC mit CAPI und Argo . . . 623
11. 5 . . . Zusammenfassung der wichtigsten Schritte für Vollautomation . . . 635
12. GitOps -- IaC: Externe Infrastrukturen über Kubernetes mit Crossplane managen . . . 637
12. 1 . . . Von Cluster API zu Crossplane: Kubernetes als Universal-Controlplane . . . 638
12. 2 . . . Crossplane einrichten . . . 647
12. 3 . . . Crossplane-Demo . . . 655
Schlusswort . . . 671
Index . . . 673