Een verkenningstocht over Kubernetes, GitOps en de EU Digital Sovereignty agenda
Inleiding — Waarom digitale autonomie mij bezighoudt
De afgelopen jaren is er iets fundamenteels verschoven in hoe Europa naar technologie kijkt. De GDPR was een begin, maar de EU Digital Decade policy, de Data Act en het European Cloud Initiative gaan verder — ze stellen de vraag: wie heeft eigenlijk de controle over onze data?
Voor de meeste organisaties is het antwoord ongemakkelijk eerlijk: een handvol Amerikaanse hyperscalers. Microsoft 365, Google Workspace, Dropbox — ze zijn handig, maar je data staat buiten de EU, valt onder de US Cloud Act, en je bent als organisatie volledig afhankelijk van een partij die morgen haar prijzen kan verdubbelen of haar dienst kan stopzetten.
Dat dit geen theoretisch risico is, bleek recent pijnlijk concreet. Begin 2025 blokkeerde Microsoft op last van de Amerikaanse regering de toegang tot mailboxen van medewerkers van het Internationaal Strafhof in Den Haag. Een internationaal rechtsorgaan — juist bedoeld om boven geopolitieke belangen te staan — bleek digitaal afhankelijk van een buitenlandse private partij die onder druk van haar eigen overheid handelde. Het was een wake-up call voor iedereen die dacht dat contractuele garanties voldoende bescherming bieden.
Die gedachte liet mij niet los. Maar laat ik direct zijn: dit is geen aversie tegen Big Tech. Microsoft, Google en Amazon bouwen indrukwekkende platforms en ik werk er dagelijks mee. Het gaat mij om iets anders — begrijpen welke serieuze alternatieven er zijn, zodat ik als IT-professional en ondernemer mijn klanten kan helpen weloverwogen keuzes te maken en een gebalanceerd, robuust IT-landschap te realiseren. Niet dogmatisch voor of tegen, maar met kennis van zaken.
De concrete technische uitdaging die ik mezelf stelde: kan ik een volledig soevereine cloud bouwen die qua gebruiksgemak kan concurreren met de grote spelers — en die ik met overtuiging kan aanbieden aan klanten die serieus zijn over datasoevereiniteit?
Dit is het verhaal van hoe ik dat heb gedaan — en wat ik onderweg heb geleerd.
De context — EU Digital Sovereignty in de praktijk
De EU heeft de afgelopen jaren een duidelijk en samenhangend kader geschetst:
GDPR (2018) — data van EU-burgers moet beschermd worden, ook tegen toegang door niet-EU overheden. De US Cloud Act maakt dit bij Amerikaanse aanbieders structureel problematisch, ongeacht contractuele garanties.
Gaia-X (2020) — het Europese initiatief voor een gefedereerde, transparante cloud-infrastructuur gebaseerd op open standaarden. Niet als protectionisme, maar als technische randvoorwaarde voor echte keuzevrijheid.
EU Data Act (2024) — versterkt het recht van organisaties om data te kunnen wisselen tussen cloudaanbieders zonder lock-in én zonder exorbitante exitkosten. De EU is op dit punt heel helder in haar richtlijnen: portabiliteit is een juridisch recht, geen gunst van de aanbieder.
NIS2 Directive (2024) — verscherpt de eisen aan cybersecurity voor organisaties die kritieke of belangrijke diensten leveren, met persoonlijke aansprakelijkheid voor bestuurders als stok achter de deur.
De rode draad is helder: Europa wil dat organisaties operationele soevereiniteit hebben — niet alleen juridische bescherming op papier, maar de technische en organisatorische capaciteit om daadwerkelijk onafhankelijk te opereren. Dat vereist open source, open standaarden, data in eigen beheer, en de kennis om het te draaien.
Mijn project is een concrete implementatie van precies die principes.
Project A — De Fundering: Infrastructure as Code op een Europese CSP
Het begon met een bewuste keuze: ik wilde ervaren hoe je infrastructuur correct opzet op een Europese Cloud Service Provider. Mijn ervaring was tot dan toe vrijwel uitsluitend opgebouwd met Amerikaanse CSP’s — AWS, Azure, GCP. Hoe werkt het op Scaleway? Wat zijn de verschillen, de beperkingen, de voordelen?
Geen SSH-sessies met losse commando’s die je later niet meer kunt reproduceren, maar code die de infrastructuur beschrijft — volledig geautomatiseerd, volledig auditeerbaar.
Wat ik heb gebouwd:
- Terraform voor provisioning op Scaleway — een Frans bedrijf met datacenters in Amsterdam en Parijs, volledig onder Europese jurisdictie
- Ansible voor configuratie van de servers na provisioning
- GitLab CI/CD als volledig geautomatiseerde pipeline met security checks ingebouwd in elke stage
- Prometheus + Grafana voor monitoring
- Uptime Kuma voor externe beschikbaarheidsbewaking
Wat dit oplevert: Infrastructure as Code is niet alleen efficiëntie — het is transparantie, kwaliteit en veiligheid ineen. Door security checks direct in de CI/CD pipeline in te bouwen — TFSec voor Terraform, Trivy voor containers — worden problemen gevonden vóórdat ze de productieomgeving bereiken. Elke infrastructuurbeslissing staat in Git, is versioned, is te reviewen, en is reproduceerbaar. Kwaliteit van code en oplossing is daardoor structureel beter te controleren en te beheren. Dat is precies wat digitale autonomie vereist: je moet kunnen begrijpen en controleren wat je hebt gebouwd.
De keuze voor Scaleway was strategisch: Europese aanbieder, GDPR-compliant, geen binding aan een hyperscaler. Data blijft in Amsterdam.
Project B — De Applicatielaag: serieuze open source alternatieven
Met de infrastructuur op orde was de volgende vraag: welke applicaties vervangen de grote spelers op een manier die gebruikers accepteren?
Nextcloud is een serieus antwoord op Microsoft 365 en Google Workspace. Niet een hobbyproject of een beperkte vervanger, maar een volwassen open source platform voor bestandsopslag, agenda, contacten, videoconferencing en kantoorautomatisering. De data staat op jouw server, in jouw S3-bucket, onder jouw controle.
Collabora Online — gebaseerd op LibreOffice — is het antwoord op Microsoft Office Online en Google Docs. Documenten worden bewerkt in de browser, bestanden staan op jouw Nextcloud.
Desktop Sync — net zoals bij Microsoft OneDrive, Google Drive of Apple iCloud is het mogelijk om mappen op afstand in sync te brengen en te houden met lokale mappen op de desktop. De Nextcloud Desktop Client op Ubuntu 24.04 werkt naadloos: bestanden synchroniseren automatisch, wijzigingen worden in beide richtingen doorgevoerd.
Wat ik heb geïmplementeerd:
- Nextcloud met Scaleway Object Storage (S3) als primaire opslag — data nooit op de applicatieserver zelf
- Collabora Online gekoppeld via het WOPI-protocol
- Nextcloud Talk voor videobellen, ondersteund door een eigen coturn TURN server voor NAT-traversal
- Full-Text Search via Elasticsearch — zoeken op documentinhoud, niet alleen bestandsnaam
- Agenda (CalDAV), Contacten (CardDAV), Taken, Notities en Kanban-borden
Wat ik heb geleerd: Open source alternatieven voor Microsoft 365 zijn volwassen — maar de integratie vereist kennis en begrip van de onderliggende technologie. Je kunt niet zomaar een pakket installeren en verwachten dat alles werkt. Je moet begrijpen hoe WOPI werkt, hoe WebRTC en TURN samen NAT-problemen oplossen, hoe Elasticsearch indexeert. Die diepgang maakt je onafhankelijk — en maakt het advies dat je klanten geeft veel concreter.
Project C — De Schaalbaarheid: Kubernetes op Kapsule
Losse servers zijn kwetsbaar en niet schaalbaar. Als de server uitvalt, valt de dienst uit. Ik wilde een platform dat zichzelf heelt, automatisch schaalt, en waar ik applicaties kan deployen zonder downtime.
Het antwoord: Kubernetes — het de-facto standaard orkestratieplatform voor containerized workloads, ontwikkeld door Google en nu beheerd door de CNCF als volledig open source project. Scaleway Kapsule levert dit als managed service: Scaleway beheert de control plane, ik beheer de applicaties. Geen vendor lock-in in de applicatielaag, want Kubernetes is een open standaard.
Wat ik heb gebouwd:
- Terraform voor het volledig geautomatiseerd opbouwen van het Kapsule cluster
- Strikte scheiding van compute (cluster) en state (PostgreSQL database + S3 buckets) — het cluster kan worden vernietigd zonder dataverlies
- ArgoCD bootstrap via Terraform Helm provider — het cluster installeert zichzelf, zero handmatige stappen
- Externe monitoring VM voor coturn TURN server en node_exporter metrics
- Vijf chirurgische destroy-opties voor kostenbeheer — van “alleen de monitoring VM” tot “alles inclusief data”
- Zero-touch IP injectie — nieuwe IP-adressen worden automatisch doorgegeven aan de applicatielaag via de GitLab API
Wat ik heb geleerd: Kubernetes is complex, maar de complexiteit koopt je iets: betrouwbaarheid en herhaalbaarheid. Een pod die crasht wordt automatisch herstart. Een node die uitvalt wordt vervangen. De applicatielaag weet niet eens dat het is gebeurd. Dat is de belofte van containers en orkestratie — en het werkt.
Project D — De GitOps Laag: ArgoCD en de volledige applicatiestack
Met een Kubernetes cluster klaar was de vraag: hoe beheer je wat erin draait op een manier die veilig, auditeerbaar en reproduceerbaar is?
Het antwoord is GitOps — Git als de enige bron van waarheid voor de gewenste staat van het cluster. ArgoCD bewaakt continu de Git repository en vergelijkt die met wat er in het cluster draait. Afwijking wordt automatisch gecorrigeerd. Handmatige wijzigingen in het cluster worden teruggedraaid. Dit elimineert de categorie “wie heeft er iets handmatig gewijzigd?” volledig — en dat is precies wat een professionele DevSecOps aanpak vereist.
Wat ik heb geïmplementeerd:
| Component | Functie | Vervangt |
| Nextcloud | Bestandsopslag, agenda, contacten | Google Drive, OneDrive |
| Collabora Online | Documentbewerking in browser | Google Docs, Office Online |
| Nextcloud Talk + coturn | Videobellen en chat | Teams, Zoom |
| Elasticsearch | Full-text search op inhoud | — |
| Traefik | Ingress, SSL-terminatie | — |
| cert-manager | Automatische TLS via Let’s Encrypt | — |
| Prometheus + Grafana | Cluster en VM monitoring | Datadog, New Relic |
| Uptime Kuma | Externe beschikbaarheidsbewaking | Pingdom |
| ArgoCD | GitOps controller | — |
De belangrijkste technische lessen:
Lesson 1 — Secrets horen niet in Git. Wachtwoorden, API keys en shared secrets worden beheerd als Kubernetes Secrets, gevuld door de pipeline via masked GitLab variabelen — en dat werkt perfect in deze context. Ze verschijnen nooit in repository of logs.
Lesson 2 — Helm charts zijn niet perfect. De Nextcloud chart ondersteunde runAsUser niet correct, de Collabora chart plaatste capabilities op het verkeerde niveau. GitOps leerde mij dat workarounds expliciet gedocumenteerd moeten worden — via ignoreDifferences en inline commentaren — zodat toekomstige jij begrijpt waarom iets zo is gebouwd.
Lesson 3 — Infrastructure drift is de vijand. ArgoCD’s selfHeal optie corrigeert automatisch elke handmatige wijziging in het cluster. Dit dwingt discipline af: alles gaat via Git, niets gaat via de terminal. De pipeline is de enige weg.
Lesson 4 — Monitoring is geen luxe. Prometheus + Grafana toont niet alleen of een pod draait, maar ook CPU-gebruik per namespace, Elasticsearch heap utilization, ArgoCD sync status, en coturn machine metrics. Zonder monitoring is een cluster een black box — en een black box is onbestuurbaar.
De architectuur in vogelvlucht

Data nooit op de applicatieserver. Compute en state strikt gescheiden. Alles op Europese infrastructuur.
Wat dit betekent voor digitale autonomie
Laat me concreet zijn over wat dit oplevert ten opzichte van Microsoft 365 of Google Workspace:
Databeheer: Alle bestanden staan in een Scaleway S3-bucket in Amsterdam. Geen enkele Amerikaanse wet heeft jurisdictie over die data. De US Cloud Act geldt niet voor Scaleway. Het scenario van het Internationaal Strafhof kan hier niet optreden.
Vendor lock-in: De volledige stack is open source. Nextcloud, Collabora, Traefik, Prometheus, ArgoCD — allemaal Apache, MIT of AGPL license. Morgen kan ik naar een andere Europese cloud provider migreren zonder toestemming te vragen, contracten te beëindigen, of exitkosten te betalen.
Transparantie: Elke configuratiebeslissing staat in Git. Ik kan exact zien wanneer, waarom, en door wie iets is veranderd. Dat niveau van auditbaarheid is structureel onmogelijk bij een SaaS-provider — en steeds relevanter in het licht van NIS2.
Kosten: Een volledig functionele soevereine cloud — bestandsopslag, kantoorpakket, desktop sync, videobellen, full-text search, monitoring — draait op een Kubernetes cluster van twee DEV1-L nodes (~€30/maand) plus een kleine DEV1-S VM (~€4/maand) en managed PostgreSQL (~€15/maand). Totaal: ~€50/maand voor een meerpersoons organisatie.
Kennis: Dit is misschien wel het belangrijkste. Door dit te bouwen begrijp ik precies hoe elke laag werkt — van Terraform resource tot Kubernetes pod, van ArgoCD sync loop tot Prometheus scrape interval. Die kennis is niet te koop bij een SaaS-provider. Ze stelt mij in staat klanten te adviseren op basis van werkelijke ervaring, niet theoretische kennis.
De eerlijke balans — wat het kost
Digitale autonomie is niet gratis. Ik zou dit artikel tekortdoen als ik dat niet eerlijk benoem.
Tijd en kennisdrempel: Kubernetes, GitOps, Helm, Terraform, Ansible — dit is een aanzienlijke leercurve. Mijn DevSecOps certificeringstrajecten hebben mij zeker geholpen om dit project professioneel en volgens best-practices te realiseren — de theoretische fundering maakt het verschil wanneer je complexe integratievraagstukken tegenkomt. Maar eerlijk gezegd helpt een flinke portie vasthoudendheid en passie minstens evenveel.
Operationele verantwoordelijkheid: Updates, certificaatverlengingen, security patches — je bent zelf verantwoordelijk. ArgoCD en cert-manager automatiseren veel, maar de architectuurkeuzes en de respons op incidenten blijven menselijk werk.
Troubleshooting is onderdeel van het vak: De lessons learnt in mijn projectdocumentatie tellen inmiddels 23 items — van use_path_style: false voor Scaleway S3 tot ignoreDifferences voor Helm chart bugs tot Grafana wachtwoorden die letterlijk ${GRAFANA_ADMIN_PASSWORD} bleken te zijn omdat envsubst masked variabelen niet invult. Elk probleem heeft mij iets geleerd dat ik niet had kunnen leren uit een boek of certificeringscursus.
Is het de moeite waard? Ja — maar niet voor iedereen, en niet voor elke use case. Voor organisaties die serieus zijn over datasoevereiniteit, privacy, en technische onafhankelijkheid: absoluut.
Wat ik heb geleerd over leren
Dit traject was evenzeer een leerervaring als een bouwproject. Een paar dingen die ik zou meegeven:
Bouw incrementeel. Project A was losse servers. Project B voegde applicaties toe. Project C bracht Kubernetes. Project D bracht GitOps. Elke stap bouwde voort op de vorige en voegde één nieuwe laag van complexiteit toe — nooit meer dan de vorige laag aankon dragen.
Documenteer terwijl je bouwt. Mijn README’s bevatten gedetailleerde lessons learnt met exacte symptomen, oorzaken en oplossingen. Maanden later weet ik nog precies waarom discovery.type: single-node verplicht is voor Elasticsearch in Kubernetes, en waarom de Collabora chart capabilities op container-niveau plaatst in plaats van pod-niveau. Die documentatie is de kennisbasis voor alles wat daarna komt.
Gebruik AI als leerpartner, niet als antwoordmachine. De meest waardevolle gesprekken waren niet “geef me de code” maar “leg uit waarom dit zo werkt” en “wat is de juiste aanpak en waarom”. Begrip schaalt, code niet. En blijf scherp: AI heeft de neiging te bluffen wanneer het het antwoord niet weet. Als je klakkeloos overneemt wat een AI genereert, raken je projecten op drift. De professional blijft aan het stuur.
Omarm de complexiteit — maar blijf hands-on. Kubernetes voelt overweldigend totdat je begrijpt dat elke abstractie een probleem oplost dat je eerder handmatig oploste. Een pod is een server die je niet hoeft te beheren. Een deployment is een rolling update die je niet hoeft te scripen. Een ingress is een nginx config die je niet hoeft te schrijven. Mede door dit traject ben ik inmiddels gestart met de voorbereiding op mijn CKA-examen. Als IT-professional en veranderaar vind ik het essentieel om hands-on te blijven — een T-shaped profiel heeft immers ook onderhoud nodig.
Conclusie — Soevereiniteit is een werkwoord
Digitale autonomie is geen staat die je bereikt — het is een praktijk die je onderhoudt. Het vereist kennis, tijd, en de bereidheid om fouten te maken en ervan te leren.
Maar de EU heeft gelijk: organisaties die hun digitale infrastructuur niet begrijpen en niet controleren, zijn kwetsbaar. Kwetsbaar voor prijsverhogingen, voor vendor lock-in, voor regelgeving van andere jurisdicties, en voor diensten die worden stopgezet — of geblokkeerd, zoals het Internationaal Strafhof aan den lijve heeft ondervonden.
Dit project heeft mij laten zien dat het alternatief niet alleen mogelijk is — het is ook beter. Beter in transparantie, beter in controle, beter in auditbaarheid, en verrassend competitief in gebruiksgemak.
De Nextcloud Desktop Client synchroniseert bestanden net zo soepel als OneDrive. Collabora opent documenten net zo snel als Google Docs. Nextcloud Talk werkt net zo goed als Teams voor een klein team.
Het verschil? De data staat in Amsterdam. De infrastructuur staat beschreven in Terraform en Ansible. De applicatielaag wordt beheerd door ArgoCD via Git. En ik begrijp elk onderdeel — niet als abstracte kennis, maar als werkende, gedocumenteerde, geautomatiseerde praktijk.
Dat is digitale autonomie.
Dit artikel is onderdeel van een meerdelige serie over het bouwen van een soevereine cloud-omgeving. Geïnteresseerd in hoe dit vertaald kan worden naar uw organisatie? Neem contact op.
Tags: #kubernetes #gitops #nextcloud #digital-sovereignty #eu-cloud #terraform #argocd #devsecops #open-source #scaleway #cka #it-architecture
Disclaimer
Dit artikel is uitsluitend bedoeld voor informatieve en educatieve doeleinden. De beschreven architectuur, configuraties, tools en aanpakken weerspiegelen persoonlijke ervaringen en inzichten opgedaan tijdens een specifiek leertraject. Aan de inhoud van dit artikel kunnen geen rechten worden ontleend. De auteur aanvaardt geen aansprakelijkheid voor eventuele schade, directe of indirecte gevolgen voortvloeiend uit het gebruik van de in dit artikel beschreven informatie, configuraties of methodieken. Prijsindicaties zijn gebaseerd op tarieven ten tijde van publicatie en kunnen zijn gewijzigd. Wet- en regelgeving waarnaar verwezen wordt, is aan verandering onderhevig — raadpleeg altijd de meest recente officiële bronnen. Voor toepassing in uw specifieke situatie wordt professioneel advies aanbevolen.
Dit artikel is tot stand gekomen met assistentie van een AI-systeem én met waardevolle input van vrienden en collega’s. De technische implementatie, de inhoudelijke keuzes, de conclusies en de eindredactie zijn volledig van de auteur.
