3n.nl / haven-lab
Haven is de VNG-standaard voor platformonafhankelijke cloudhosting van overheidsapplicaties. Dit lab draait de volledige keten thuis: een Haven-compliant Kubernetes-cluster, de Haven+ platformdiensten en daarbovenop Open Zaak — op een pc die 's avonds ook gewoon een spelletje draait.
architectuur
Van onder naar boven: één fysieke machine, daarin zes virtuele machines die samen het cluster vormen, daarop de platformlaag en de toepassingen. Links wordt alles vanuit git beheerd; rechts komt het verkeer binnen door één sluis, Tailscale. Niets staat open op internet.
lagen
Haven schrijft een configuratie van Kubernetes voor; de Haven Compliancy Checker toetst die met vijftien verplichte checks. Drie daarvan eisen een echte hoogbeschikbare opzet: minstens drie control-plane-nodes, drie workers en meerdere beschikbaarheidszones. Op één fysieke machine haal je dat alleen met virtuele machines. Vandaar de scheiding tussen host en cluster.
NixOS op een externe USB-SSD. De hele machine staat beschreven in een flake; een push naar main is de uitrol. Incus draait de VM's, de host exporteert NFS en is de Tailscale-subnet-router.
NixOS 26.05 · disko · Incus · nfs · TailscaleZes Talos Linux-VM's: een onveranderlijk besturingssysteem zonder SSH, alleen een API. Drie zones via node-labels, de API achter één virtueel adres. MetalLB, nfs-csi en metrics-server vullen aan wat een cloud normaal levert.
Talos 1.13 · talhelper · Flannel · MetalLB · csi-driver-nfsDe referentie-PaaS van VNG, gedeployed met Flux vanuit een fork van gitops-flux. Identiteit, certificaten, databases, observability en back-up zijn daarmee gestandaardiseerd op OpenID Connect, OpenTelemetry en de Gateway API.
Istio · cert-manager · Keycloak · CNPG · Loki/Mimir/Tempo/Grafana · VeleroCommon Ground-componenten als tenants op het platform. Open Zaak als zaakregister, Open Notificaties voor gebeurtenissen, Open Formulieren als voorkant. De demo-casus: een melding die uitmondt in een advies.
Open Zaak · Open Notificaties · Open Formulierenrollen en gereedschap
In een echte overheidsorganisatie liggen deze rollen bij verschillende teams en leveranciers. In het lab vervult één persoon ze allemaal, maar de scheiding wordt wél afgedwongen: elke rol heeft zijn eigen toegangspad, en Keycloak kent de rollen die de toepassingen gebruiken.
| Rol | Verantwoordelijk voor | Gereedschap | Toegang |
|---|---|---|---|
| Infrabeheerderhost en VM's | De fysieke machine, het besturingssysteem, de virtualisatie, opslag en het netwerk. Capaciteit en stroom. |
|
ssh met sleutel naar de host; push naar main |
| ClusterbeheerderKubernetes | De Talos-nodes, Kubernetes-versie, de basislaag, upgrades en de Haven-compliance. |
|
Talos-API en kube-API alleen via het tailnet; cluster-admin via Pinniped/OIDC |
| PlatformbeheerderHaven+ | De platformdiensten: identiteit, certificaten, databases, observability, beleid, back-up. Onboarding van tenants. |
|
Git-fork (push = uitrol); Keycloak-realm master |
| Applicatiebeheerderfunctioneel beheer Open Zaak | De zaaktypencatalogus, autorisaties tussen componenten, notificatie-abonnementen, formulieren. |
|
Browser via tailnet; Keycloak-rol beheerder in realm haven |
| Behandelaar en adviseureindgebruikers | Meldingen in behandeling nemen, een advies opstellen, de zaak afhandelen. |
|
Browser; Keycloak-rollen behandelaar, adviseur |
| Melderburger of collega | Een melding doen en de status volgen. |
|
Browser; in het lab via gedeelde tailnet-node, in productie via DigiD/eHerkenning |
| ToezichtCISO, auditor | Aantoonbaarheid: voldoet het cluster aan Haven, is het veilig geconfigureerd, wat gebeurt er op het platform. |
|
Leesrechten via Pinniped; dashboards via de gateway |
demo-casus
Een typische overheidsorganisatie die meldingen verwerkt tot adviezen, bijvoorbeeld over panden en locaties. Alles loopt over de standaard-API's van Common Ground, dus elk onderdeel is vervangbaar.
compliance
De checker is het enige verplichte onderdeel van Haven. Vijftien checks, waarvan de categorie "Haven+" er drie telt. Zo haalt dit lab ze.