ops-demo/docs/presentation/final-talk.md
2026-03-03 23:40:52 +01:00

2.8 KiB

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)

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.