3n.nl / haven-lab

Een complete Haven-haven op één gaming-pc

Haven is de VNG-standaard voor platformonafhankelijke cloud­hosting 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.

> status: in opbouw, oktober 2026 · haven.3n.nl, alleen binnen het tailnet

architectuur

De architectuur in één plaat

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.

Architectuurplaat Haven+ thuislab Vier gestapelde lagen: host, cluster, platform, toepassingen. Links git en de HX90, rechts Tailscale als enige toegang. Buiten de pc thuisnet en tailnet GitHub nixos_eigen_hardware1 fork van Haven+ gitops-flux HX90 Cowork + git, kubectl, haven check NUC DNS van het tailnet, Wake-on-LAN Demo-laptop, telefoon *.haven.3n.nl via tailnet Gaming-pc · i7-14700KF · RTX 4070 SUPER · 32 GB · boot van Samsung T7 Windows op de interne NVMe blijft onaangeraakt Tailscale · subnet-router · tag:haven-lab · enige toegang 4 · Toepassingen (Common Ground) Open Zaakzaken, documenten, catalogus Open Notificatiesgebeurtenissen Open Formulierenmeldformulier Objecten API · Open Inwonerlater 3 · Haven+ platformdiensten (VNG-referentie, via Flux) Istio gatewayGateway API · .200 cert-managereigen CA, *.haven.3n.nl Keycloak, Pinnipedidentiteit, OIDC CloudNative-PGPostgreSQL + PostGIS GarageS3-objectopslag Alloy, Loki, Mimir, Tempo, Grafanalogs, metrics, traces, dashboards Kyverno, Falco, Trivybeleid, detectie, scans Sealed Secrets, Velerogeheimen in git, back-up Flux, HeadlampGitOps, cluster-UI 2 · Haven-cluster · Kubernetes op Talos Linux · 15/15 checks zone-azone-bzone-c cp1 · control planecp2 · control planecp3 · control plane worker1 · 4 vCPU · 5 GBworker2 · 4 vCPU · 5 GBworker3 · 4 vCPU · 5 GB MetalLB · LB-adressencsi-driver-nfs · RWXmetrics-server 1 · Host · NixOS, declaratief in git Incus · KVM6 VM's, bridge 10.42.0.0/24 NFS-exportReadWriteMany-volumes disko · systemd-bootT7: boot / Incus-pool / NFS autoUpgradehaalt main elke 10 min git pull: push = uitrol
Elke laag wordt vanuit git beheerd: de host via de NixOS-flake (autoUpgrade), het cluster via talhelper-configuratie, het platform via Flux. Verkeer van buiten komt uitsluitend binnen via Tailscale en wordt op laag 3 door de Istio-gateway en cert-manager afgehandeld.

lagen

Waarom vier 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.

1 · Host

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 · Tailscale

2 · Haven-cluster

Zes 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-nfs

3 · Haven+ platform

De 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 · Velero

4 · Toepassingen

Common 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 Formulieren

rollen en gereedschap

Wie doet wat, met welk 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.

RolVerantwoordelijk voorGereedschapToegang
Infrabeheerderhost en VM's De fysieke machine, het besturingssysteem, de virtualisatie, opslag en het netwerk. Capaciteit en stroom.
  • git + Claude Cowork op de HX90
  • NixOS-flake, disko, nixos-rebuild
  • incus voor de VM's
  • Tailscale-console (ACL, routes)
ssh met sleutel naar de host; push naar main
ClusterbeheerderKubernetes De Talos-nodes, Kubernetes-versie, de basislaag, upgrades en de Haven-compliance.
  • talosctl, talhelper (configs in git, geheimen met sops)
  • kubectl, helmfile
  • Haven CLI: haven check
  • Headlamp (cluster-UI uit Haven+)
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.
  • Flux (flux CLI, fork van gitops-flux)
  • Keycloak-beheer, Grafana
  • Sealed Secrets, Velero
  • Kyverno-beleid, Trivy-rapporten
Git-fork (push = uitrol); Keycloak-realm master
Applicatiebeheerderfunctioneel beheer Open Zaak De zaaktypencatalogus, autorisaties tussen componenten, notificatie-abonnementen, formulieren.
  • Open Zaak-beheerinterface (ZTC, autorisaties)
  • Open Notificaties-beheer
  • Open Formulieren-ontwerper
Browser via tailnet; Keycloak-rol beheerder in realm haven
Behandelaar en adviseureindgebruikers Meldingen in behandeling nemen, een advies opstellen, de zaak afhandelen.
  • Zaakafhandelcomponent of Open Inwoner (demo)
  • Open Zaak-API's achter de Istio-gateway
Browser; Keycloak-rollen behandelaar, adviseur
Melderburger of collega Een melding doen en de status volgen.
  • Open Formulieren
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.
  • haven check inclusief CNCF-conformance
  • kube-bench (CIS), Kubescape
  • Grafana, Loki, Falco-meldingen
  • Trivy-kwetsbaarheidsrapporten
Leesrechten via Pinniped; dashboards via de gateway

demo-casus

Van melding naar advies

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.

  1. Melding De melder vult een formulier in Open Formulieren in. Dat maakt een zaak van het type Melding behandelen aan en koppelt de melding als document.
  2. Toewijzing Open Notificaties meldt de nieuwe zaak; een behandelaar neemt hem in behandeling. Status: In behandeling.
  3. Advies Een adviseur krijgt de rol op de zaak, stelt het adviesrapport op en legt het als document vast. Status: Advies opgesteld.
  4. Afhandeling De behandelaar sluit af met een resultaat: gegrond, ongegrond of doorverwezen. De melder ziet de uitkomst.

compliance

Wat de Haven-checker toetst

De checker is het enige verplichte onderdeel van Haven. Vijftien checks, waarvan de categorie "Haven+" er drie telt. Zo haalt dit lab ze.