90 lines
2.8 KiB
Markdown
90 lines
2.8 KiB
Markdown
# Final Talk - GitOps in de praktijk
|
|
|
|
## 1. Wat we nu echt hebben staan
|
|
|
|
Vandaag hebben we niet "een demo" gebouwd, maar een complete GitOps-loop:
|
|
|
|
1. Git bevat de gewenste state.
|
|
2. ArgoCD reconcilet de cluster daarnaar.
|
|
3. Tekton wijzigt Git (image-tag bump), en ArgoCD pakt dat weer op.
|
|
4. Alles is reproduceerbaar op een nieuwe VM.
|
|
|
|
### Snelle architectuur
|
|
|
|
```
|
|
Laptop/browser
|
|
-> argocd.192.168.56.200.nip.io
|
|
-> podinfo.192.168.56.200.nip.io
|
|
-> grafana.192.168.56.200.nip.io
|
|
|
|
VirtualBox host-only netwerk
|
|
|
|
VM (k3s)
|
|
-> ingress-nginx + MetalLB
|
|
-> ArgoCD (app-of-apps)
|
|
-> Tekton (CI in-cluster)
|
|
-> podinfo (demo workload)
|
|
-> monitoring (bonus)
|
|
```
|
|
|
|
### Componenten in 1 regel
|
|
|
|
| Component | Waarom die hier zit |
|
|
|-----------------------|----------------------------------------------|
|
|
| k3s | Lichtgewicht Kubernetes voor lokale labs |
|
|
| ArgoCD | GitOps controller |
|
|
| MetalLB | LoadBalancer IP op bare metal/VM |
|
|
| ingress-nginx | HTTP routing op hostnames |
|
|
| Tekton | Pipeline als Kubernetes resources |
|
|
| podinfo | Eenvoudige app om deploys zichtbaar te maken |
|
|
| kube-prometheus-stack | Metrics en dashboards |
|
|
|
|
## 2. Waarom dit productie-relevant is
|
|
|
|
### Zonder GitOps (klassieke drift)
|
|
|
|
```bash
|
|
kubectl set image deployment/api api=company/api:hotfix
|
|
```
|
|
|
|
Dat werkt snel, maar je verliest context: geen review, lastig auditbaar, foutgevoelig.
|
|
|
|
### Met GitOps
|
|
|
|
1. Wijziging gaat via commit/PR.
|
|
2. Review + merge.
|
|
3. ArgoCD sync.
|
|
4. Git geschiedenis is je audit trail en rollback-mechanisme.
|
|
|
|
Concreet voordeel:
|
|
|
|
- Traceerbaarheid: wie veranderde wat en waarom.
|
|
- Driftcontrole: handmatige clusterwijzigingen vallen op.
|
|
- Herstelbaarheid: cluster kwijt -> opnieuw opbouwen vanuit Git.
|
|
- Samenwerking: app- en platformwijzigingen via hetzelfde proces.
|
|
|
|
## 3. App-of-Apps in het kort
|
|
|
|
`apps/root.yaml` verwijst naar onderliggende Argo Applications.
|
|
|
|
Dat betekent: nieuwe capability toevoegen = nieuwe app-definitie committen.
|
|
Geen losse handmatige installatiestappen op de cluster.
|
|
|
|
## 4. Grenzen van deze workshop-opzet
|
|
|
|
Dit is een leeromgeving. In productie zou je strakker willen op o.a.:
|
|
|
|
- Secrets: geen PATs als plain K8s secrets in Git-workflow, maar Vault + ESO of vergelijkbaar.
|
|
- Security: PSA/namespace policies bewust hardenen i.p.v. versoepelen voor labs.
|
|
- Multi-cluster: ApplicationSets en promotieflow (dev -> staging -> prod).
|
|
- Delivery-strategie: canary/blue-green met meetbare rollback-criteria.
|
|
|
|
## 5. Wat je mee moet nemen
|
|
|
|
Als je 1 ding onthoudt:
|
|
|
|
"Het cluster is een runtime-kopie van wat in Git staat."
|
|
|
|
Niet andersom.
|
|
|
|
Dat principe maakt deployments voorspelbaar, bespreekbaar en herstelbaar.
|