· · 21 min leestijd Intermediate

Het verdienmodel van je dependency hoort in je threat model

Portainer bevroor deze maand zijn gratis editie. HashiCorp deed het in 2023 met Vault, MinIO deed het in vier stappen zonder de licentie aan te raken. Zesendertig gedateerde gevallen, wat elk kostte, en vijf vragen om je eigen stack te scoren.

Een meisje wrikt een muntgleuf van een server terwijl een trol z'n hand ophoudt voor munten

TL;DR Een leverancier die z’n gratis editie bevriest hoort in je risicoregister, naast het certificaat dat verloopt. Zesendertig gedateerde gevallen hieronder, drie soorten gebeurtenis, en vijf vragen om je eigen stack langs te leggen. In mijn eigen register ontbrak de Vault-regel. Drie jaar lang.

Op 11 september publiceerde de CEO van Portainer “Portainer 3.0 is coming, and here’s what it means for you”. Ik las hem de maandag erna en haalde m’n schouders op.

Wat erin staat, kort. 3.0 is een Kubernetes-first codebase voor enterprise-klanten, en “we are not cutting a separate CE build of it”. Community Edition blijft op 2.x. 2.45 LTS “is the last release in the 2.x line”. Een paar dagen later kwam er een verduidelijking bij: 2.45 krijgt security fixes, bugfixes en back-ports van elke 3.x-feature met een Docker-API-equivalent, “for as long as that LTS is supported”. De lifecycle-pagina zet dat op mei 2027. Wil je 3.x toch gratis? Dan is er een Business Edition-sleutel die 3 Nodes Free heet, één per organisatie.

Even eerlijk over Portainer, want de rest van dit stuk gaat klinken alsof ik dat niet ben. Er zit niks stiekems in die post. De licentie op de code die je draait is niet veranderd. Het is nog steeds zlib, de repository zegt het zelf. Ze hebben het uitgelegd, ze ondersteunen wat ze hebben uitgeleverd, en de ongemakkelijke zin hebben ze zelf opgeschreven: 3.x als CE uitbrengen “would misrepresent what it is and who it is for”.

Dus als je Portainer op een Docker-host draait, dan haalde jij waarschijnlijk ook je schouders op. Werkt nog. Werkt in mei 2027 ook nog.

Dat schouderophalen, daar gaat deze hele post over. Zo klinkt een risico dat niemand heeft opgeschreven.

De rij die in mijn register ontbrak

Ik houd voor klantplatformen een risicoregister bij. Saai spreadsheetje. Certificaten die verlopen, een Debian-release die end-of-life gaat, een Kubernetes-versie die een API laat vallen. Elke regel krijgt een datum, een blast radius en een ruwe schatting van wat eruit stappen kost. Over die regels maakt niemand ruzie. Iedereen in de kamer heeft er wel eentje meegemaakt.

Dit is het Portainer-nieuws als zo’n regel:

Risico. De leverancier van de containermanagement-UI bevriest de gratis editie.

Kans. Hoog. De leverancier verkoopt een commerciële editie, en geen foundation bezit de code of de naam.

Impact. Het upgradepad krijgt een factuur of een node-limiet. De gratis editie krijgt security fixes tot een datum die de leverancier kiest.

Trigger. Een blogpost.

Mitigatie. Ken de uitgang vóór de post. Houd de data in een formaat dat het alternatief leest.

Die regel had ik nog nooit ergens gezien. Ook niet bij mezelf, tot deze maand. We doen alsof de licentie op een dependency net zoiets is als de licentie op de kernel, gewoon waar. En dan verandert een bedrijf hem in een kwartaalplanning en staat iedereen verbaasd te kijken.

Stel nou dat je die regel in 2024 had opgeschreven. De Portainer-post komt binnen en je kent de antwoorden al. 3 Nodes Free dekt je als je drie omgevingen of minder onder één organisatie draait. Misschien kan 3.x je eigenlijk niks schelen, want een Docker-homelab is niet voor wie het bedoeld is. En wil je er ooit uit, dan lezen Komodo en Arcane allebei compose-stacks, al is geen van beide een fork. Tien minuten lezen, en je gaat gewoon weer verder.

Zesendertig rijen, drie soorten gebeurtenis

Dus heb ik het register gebouwd dat ik had willen hebben. Ik ben elk geval langsgegaan dat ik me kon herinneren, plus een paar die ik was vergeten, en heb elk ervan op 23 september 2026 gelezen op de pagina van de leverancier zelf. Wat ik daar niet kon bevestigen, ging eruit. Dat liet drieënveertig gebeurtenissen over. Sommige vouwen in elkaar, een terugdraai hoort bij de zet die hij terugdraait en een tweede herlicentiëring bij de eerste. Zesendertig rijen.

DatumProjectWat veranderdeHet gratis pad vandaagFork
2016-08-16MariaDB MaxScaleGPLv2 naar BSL, het allereerste gebruik van die licentie, zeven jaar voordat HashiCorp ernaar greep. “The license of MaxScale has been changed from GPLv2 to MariaDB BSL”Valt na vier jaar terug op GPLGeen
2018-08Redis modulesAGPL naar Apache-2.0 met de Commons Clause, daarna RSAL in februari 2019De server bleef BSD tot 2024Geen
2018-10-16MongoDBAGPLv3 naar SSPLGratis zelf te hosten. De OSI zei in 2021 dat het geen open source isGeen overleefde
2018-11-29Neo4j EnterpriseEnterprise-broncode uit de repository met 3.5, “requires a commercial license”Community blijft GPLv3
2018-12Emby4.x closed source, volgens de fork3.5.2 was de laatste GPL-releaseJellyfin, vanaf 3.5.2. 12.1 deze maand
2018-12-14Confluent PlatformKSQL, Schema Registry en REST Proxy van Apache-2.0 naar de Confluent Community LicenseVrij te draaien, geen SaaSGeen fork-vraag. Kafka zelf blijft Apache-2.0 bij de ASF
2019-11-06SentryBSD-3 naar BSL , daarna naar FSL in 2023Gratis zelf te hosten, concurrerende SaaS uitgesloten, wordt Apache-2.0 of MIT na twee jaarGeen
2019-12-04ChefBinaries achter de Chef EULABroncode blijft Apache-2.0Cinc, “same code, same compatibility, no EULA”. 19.3.14 in mei
2020-04-30AnacondaGebruiksvoorwaarden op de package-repositoryGratis onder 200 werknemers, de grens sinds 2024Geen fork-vraag. Miniforge en conda-forge, gratis voor iedereen
2020-05-26CoreOS Container LinuxEnd of life, twee jaar nadat Red Hat CoreOS kocht. Apache-2.0 van begin tot eindFedora CoreOS is de opvolgerFlatcar, geforkt in 2018, CNCF incubating sinds 2024. Stable 4757.2.0 deze maand
2020-11-16GraylogNaar SSPL met 4.0Gratis zelf te hostenGeen
2020-12-08CentOS Linux“CentOS Linux 8, as a rebuild of RHEL 8, will end at the end of 2021.” Stream neemt de plaats in, “serving as the upstream (development) branch”De gratis RHEL is het developer-abonnement, 16 systemenRocky Linux, GA juni 2021, 10.2 in mei 2026. AlmaLinux, stable maart 2021, 10.2 in mei 2026
2020-12-08Mapbox GL JSBSD-3 naar de voorwaarden van Mapbox met v2.0.0“a billable map load occurs whenever a Map object is initialized”MapLibre GL JS, vanaf v1.13. 6.11.1 vandaag
2021-01-14Elasticsearch, KibanaApache-2.0 naar SSPL en Elastic LicenseGratis zelf te hosten. AGPL in 2024 weer toegevoegdOpenSearch, sinds 2024 onder de Linux Foundation. 3.8.0 in augustus 2026
2021-04-21Grafana, Loki, TempoApache-2.0 naar AGPLv3Nog steeds open source. Staat in de tabel om te laten zien waar de grens ligtNiet nodig
2021-08-31Docker DesktopAbonnement boven 250 werknemers of 10M USD omzetGratis onder de grens. De drempel staat er nogGeen fork-vraag. Podman Desktop en Rancher Desktop
2021-09-27AirbyteCore van MIT naar Elastic License 2.0Vrij te draaien, geen hosted dienst. Connectors blijven MIT
2022-09-07AkkaApache-2.0 naar BSL, gratis onder 25M USD omzetGratis onder de grens, valt na drie jaar terugApache Pekko, vanaf 2.6.20
2022-10-24GiteaGitea Ltd neemt het merk en de domeinen overLicentie ongewijzigd, MITForgejo, onder Codeberg e.V. Hard fork sinds 2024, GPLv3+ sinds v9. 16.0.5 deze maand
2023-06-21RHEL-broncode“CentOS Stream will now be the sole repository for public RHEL-related source code releases.” Klanten houden de broncode via het portaalOngewijzigd voor klanten. Rebuilders raken de 1:1-invoer kwijtAlmaLinux liet 1:1 los voor ABI-compatibiliteit. CIQ, Oracle en SUSE richtten OpenELA op
2023-08-10Terraform, VaultMPL-2.0 naar BSL, wordt MPL-2.0 vier jaar na elke releaseGratis zelf te hosten tenzij je een concurrerend hosted product verkoopt. Vault Community Edition is niet gestoptOpenTofu, LF, 1.12.6 in augustus 2026. OpenBao, LF, 2.6.3 vandaag
2023-12-11VMware, van BroadcomPerpetual licenties uit de verkoop, negentien dagen na het sluiten van de overname. “VMware vSphere Hypervisor (free edition)” staat op de lijstAlleen abonnement, VCF of VVF. Support loopt tot het einde van het contract. Gratis ESXi kwam terug in april 2025, “for non-production use”Geen fork, er is geen broncode. Alternatieven wel: Proxmox VE, XCP-ng, KubeVirt
2024-02-14nginxNiets. De hoofdontwikkelaar vertrok bij F5 om een security-beleidBSD-2, identiek aan beide kantenfreenginx. Een governance-fork, in de tabel om dezelfde reden als Grafana
2024-02-21Linkerd“as of 2.15, we will no longer be producing open source stable release artifacts”. CNCF graduated sinds 2021Edge-releases blijven open. Stable is Buoyant Enterprise, gratis onder 50 werknemers
2024-03-20RedisBSD-3 naar RSALv2 en SSPLv1Gratis zelf te hosten. AGPL in mei 2025 weer toegevoegdValkey, LF, acht dagen later. 9.1.2 in augustus 2026
2024-04-09Camunda 8Camunda License 1.0 vanaf 8.6, “Free for Development only. License needed for production use”Alleen non-productieGeen
2024-08-22Sourcegraph“Sourcegraph transitioned to a private monorepo.” Was Apache-2.0Een read-only snapshot, gearchiveerd in september 2024Niks meer over om te forken
2024-11-07PuppetBinaries naar “a private, hardened, and controlled location”, EULA25 nodes gratis. Broncode blijft Apache-2.0OpenVox, Vox Pupuli, “a drop-in replacement”. 8.29.0 deze maand
2024-11-18CockroachDBCore gestopt. Enterprise gratis onder 10M USD omzetDe gratis editie is weg. De gratis licentie is een omzettoetsGeen
2024-12-18ScyllaDB“ScyllaDB OSS AGPL 6.2 will stand as the final OSS AGPL release”. Source-available vanaf 2025.1Gratis tier begrensd op 10 TB en 50 vCPU’s
2025-05-24MinIOConsole teruggebracht tot een object browser, LDAP- en OIDC-login naar het betaalde productAGPLv3, ongewijzigd. Zie hieronderGeen
2025-07-16BitnamiBroadcom, alweer, twintig maanden na VMware. Gratis catalogus teruggebracht tot “the most recent ’latest’ tags of the limited community-tier subset”, de rest naar een legacy-repository met “no further updates”Broncode blijft Apache-2.0 op GitHubGeen fork-vraag. Bouw je eigen images
2025-10-15MinIO“distributed as source code only”, geen binaries, geen imagesLaatste release dezelfde dag, een CVE -fixGeen
2025-12-03MinIO“under maintenance and is not accepting new changes”Security fixes “case-by-case”Geen
2026-04-25MinIORepository gearchiveerd. “THIS REPOSITORY IS NO LONGER MAINTAINED”AIStor Free, een licentiesleutel, of AIStor EnterpriseGeen
2026-09-11PortainerGeen CE-build van 3.x. 2.45 LTS is de laatste 2.x-releasezlib, ongewijzigd. Ondersteund tot mei 2027. 3 Nodes Free voor 3.xGeen, per vandaag

Als je ze in één keer leest, vallen er drie soorten gebeurtenis uit, en het advies verschilt per soort.

Herlicentiëring is de soort waar iedereen ruzie over maakt. De code blijft publiek, de licentie op nieuwe releases verandert. Wat mensen in die eerste week van verontwaardiging steeds vergeten, is dat oude releases hun oude licentie voor altijd houden. De binary die je vanavond draait is prima. Je upgradepad is wat er veranderd is. MongoDB, Elastic, Redis, HashiCorp, Sentry en Akka deden allemaal dit.

Editiebevriezing is stiller, en volgens mij de gevaarlijkere van de twee. De licentie beweegt helemaal niet. De gratis editie krijgt gewoon de toekomst van het product niet meer. Portainer deed dit. CockroachDB deed het in 2024, toen het Core schrapte en verving door een gratis Enterprise-licentie voor bedrijven onder de 10 miljoen dollar omzet. Red Hat deed het zelfs twee keer. December 2020, de gratis rebuild van RHEL stopte en een upstream-ontwikkeltak nam de naam CentOS over. Juni 2023, de publieke broncode waar Rocky en Alma uit herbouwden ging achter het klantportaal. In geen van beide zetten veranderde er een licentie. De GPL kwam er niet eens aan te pas. Chef deed het in 2019, broncode blijft Apache-2.0 en de binaries gaan achter een EULA, en Puppet deed hetzelfde in 2025. Allebei kregen ze een community-rebuild. En MinIO deed het op een manier waar ik zo op kom.

Product wordt betaald is de derde. Docker Desktop in 2021, waar de engine Apache-2.0 bleef en de desktop-app een abonnement kreeg boven 250 werknemers of 10 miljoen dollar. En VMware in december 2023, hetzelfde, maar dan op een schaal waar carrières op stuklopen. Negentien dagen nadat Broadcom de overname had gesloten gingen de perpetual licenties uit de verkoop, de gratis hypervisor erbij, en werd alles een abonnement op één van twee bundels. Een fork is er niet, want er is nooit broncode geweest. Alternatieven wel, Proxmox VE, XCP-ng, of KubeVirt in een cluster dat je al draait, en elk daarvan betekent elke VM migreren in plaats van een binary eronder wisselen. De meeste van mijn klanten zitten in deze rij. Het is ook de rij die mij ervan overtuigde dat de licentie afleiding is. Aan VMware was nooit iets open, en het risico was er toch.

Twee rijen staan in de tabel om mezelf eerlijk te houden. Grafana Labs zette Grafana, Loki en Tempo in 2021 op de AGPL, en de AGPL is een door de OSI goedgekeurde licentie. Dat is open source, punt. Zou ik dat over één kam scheren met SSPL, dan haakt iedereen af die beide licenties heeft gelezen. Terecht. nginx in 2024 was een governance-ruzie. De LICENSE-bestanden op nginx.org en freenginx.org zijn byte voor byte gelijk. Een tabel die alleen de enge zetten laat zien, moet je niet vertrouwen.

De MinIO-rij

Deze doet pijn, want hij zat in mijn eigen cluster. Vier maanden dit jaar hield MinIO de chunks van Loki, de Postgres-back-ups en het backup-target van Longhorn. En de gratis editie ging dood zonder één licentiegebeurtenis. AGPLv3 in de eerste release, AGPLv3 in de laatste.

Let op de datums. Mei 2025, een release met het label “Breaking Release” kort de ingebouwde console in tot een object browser en verhuist LDAP- en OIDC-login naar het betaalde product. Oktober 2025, de README zegt “distributed as source code only”, en een issue dat om de Docker-image vraagt gaat dicht als “working as intended”. December 2025, “under maintenance and is not accepting new changes”. April 2026, repository gearchiveerd.

Vier stappen in elf maanden, en de licentiepagina is geen letter veranderd. Kijkt je register alleen naar het licentieveld, dan wandelt MinIO er gewoon langs.

Wat elk hiervan kost

Welke soort ook, de rekening heeft dezelfde vier regels.

  1. De gratis editie blijft werken en stopt met groeien. Volgend jaar nog prima. Dan laat Kubernetes een API-versie vallen en gaat hij niet mee.
  2. Je upgradepad heeft nu een factuur, een omzettoets of een node-limiet aan zich hangen. Alle drie staan in de tabel.
  3. Is er een fork, dan is daarheen verhuizen een migratie. Het dataformaat is op dag één gelijk en drijft daarna weg.
  4. Er is alleen een fork als het project groot genoeg was om er een aan te trekken. Portainer heeft er geen terwijl ik dit schrijf. MinIO ook niet. Kleine projecten krijgen geen OpenBao.

Wat een foundation je echt oplevert

Ik dacht dat dit stuk kort zou worden. De forks deden het beter dan de verontwaardiging van 2023 voorspelde.

OpenTofu forkte Terraform vijftien dagen na de aankondiging, trad op 20 september 2023 toe tot de Linux Foundation, ging GA in januari 2024, en leverde 1.12.6 in augustus 2026. OpenBao ging GA in juli 2024 en bracht 2.6.3 uit op de dag dat ik dit schrijf, met Adfinis, ControlPlane, GitLab en SAP op zijn supporterspagina. Valkey forkte Redis acht dagen na de aankondiging, met AWS, Google Cloud en Oracle erachter, en leverde 9.1.2 in augustus. OpenSearch is vijf jaar oud, heeft een eigen foundation onder de Linux Foundation, en leverde in augustus ook 3.8.0.

Alle vier leven nog. En dan het deel dat ik niet had zien aankomen. Toen Elastic in augustus 2024 de AGPL terugzette, en Redis in mei 2025 hetzelfde deed, klapte geen van de forks in. Een leverancier die van gedachten verandert, draait een fork niet terug. Zodra hij bestaat heb je voorgoed een tweede leverancier, en wordt het origineel voor iedereen goedkoper.

“Ondergebracht bij een foundation” wordt m’n advies, dus wilde ik wel even weten wat je daar nou echt voor koopt. Ik heb het CNCF-charter gelezen, bijgewerkt in juni 2025, en het graduation-template. Dit is gegarandeerd.

  • Het merk gaat naar de Linux Foundation, sectie 11(a)(i). Een bedrijf dat wegloopt kan de naam niet meenemen. OpenTofu, OpenBao en Valkey misten dit op dag één alle drie, en elk moest een nieuwe naam kiezen en zijn marketing op nul beginnen.
  • Alleen door de OSI goedgekeurde licenties, Apache-2.0 naar buiten, secties 11(a)(ii) en 11(b)(iii). Een overstap naar BSL of SSPL vereist een uitzondering van de Governing Board. Niet onmogelijk, maar niet de keuze van één bedrijf.
  • Graduation vereist maintainers van minstens twee organisaties, met een balansmechanisme zodat “no single organization controls governance decisions”.

En dit is niet gegarandeerd, wat niemand erbij zegt als ze “het is een CNCF -project” roepen:

  • Dat iemand de maintainers blijft betalen. Geen clausule verplicht een bedrijf om wat dan ook te financieren.
  • Dat het maintainer-bedrijf er geen commerciële afgeleide pal naast verkoopt.
  • Dat het project überhaupt in leven blijft. Sectie 6(a)(iii) laat de TOC het archiveren.
  • Dat een incubating project meer dan één organisatie achter zich heeft. Die toets komt pas bij graduation.

Dat lijstje is geen theorie. Linkerd graduated in juli 2021. In februari 2024 schreef Buoyant “as of 2.15, we will no longer be producing open source stable release artifacts” en zette de stable builds achter Buoyant Enterprise, gratis onder de 50 werknemers. Licentie onaangeraakt. Governance onaangeraakt. Graduated-status onaangeraakt. Het charter had er niks over te zeggen, want het heeft nooit binaries beloofd.

Ik heb de vier CNCF-projecten nagekeken waar mijn eigen cluster het zwaarst op leunt. Argo graduated in december 2022, Cilium in oktober 2023, Kyverno in maart 2026. Longhorn is incubating sinds november 2021 en is niet graduated, wat betekent dat SUSE nog steeds de enige organisatie met maintainers kan zijn. Ik draai Longhorn. Het krijgt in mijn register een lagere score dan Cilium, en daar kan ik best mee leven, zolang die score maar op papier staat en niet alleen in m’n onderbuik.

Loki en Tempo krijgen dezelfde noot. AGPL, dus open source. Single vendor, dus geen foundation. De blootstelling zit daar in vraag drie aan het eind, wie de maintainers betaalt, en niet in de licentie. Ik draai Loki ook.

En Forgejo, de source code repository waar dit hele cluster vanuit deployt, is zelf een fork. Gitea Ltd nam in oktober 2022 het merk en de domeinen over, Forgejo begon twee maanden later onder Codeberg e.V., werd in februari 2024 een hard fork, en ging met v9 van MIT naar GPLv3+. Dus de fork die ik koos heeft zelf ook een licentiewissel gedaan, toevallig de kant op die ik prettig vind. Vraag één geldt er net zo goed voor.

Mijn eigen cluster, uit de git log

Hier houd ik op met naar andermans tabellen te wijzen.

Drie jaar na de aankondiging van HashiCorp draait mijn cluster hashicorp/vault:2.1. Renovate tilde hem op 13 augustus van 1.21 naar 2 en op 15 september naar 2.1, en ik heb beide gemerged zonder erbij na te denken. De chart komt van helm.releases.hashicorp.com. Het LICENSE-bestand in die repository noemt nu IBM als licentiegever, sinds de overname in februari 2025 rond was. Ik heb Vault op 5 april 2026 in dit cluster gezet, toen OpenBao al een jaar voorbij zijn eerste stabiele release was.

Heb ik redenen? Tuurlijk. Het was de chart die ik kende. Alleen was geen van die redenen een regel in een register, en ik heb ondertussen wel de hele tijd open source aan klanten zitten aanraden. Best gênant om op te schrijven.

Dus waarom is het nog steeds Vault? Deels omdat Vault gewoon werkt, en de BSL met zoveel woorden zegt dat intern hosten “not considered a competitive offering” is, dus een homelab is precies de gebruiker die de licentie met rust laat. Vooral omdat ik nooit had uitgerekend wat weggaan zou kosten. Dus dat heb ik maar eens gedaan, uit de repository en niet vanaf een whiteboard.

  • De chart. OpenBao levert een eigen. De values passen niet één op één, en de mijne heeft zes maanden aan kleine beslissingen in zich, de telemetry-stanza incluis.
  • Drie CronJobs die de Vault-image gebruiken. Auto-unseal, de nachtelijke raft-snapshot, en de nachtelijke export die de hele KV-boom afloopt en versleutelt naar een age-sleutel. Elk daarvan roept vault aan. Aan de andere kant heet de CLI bao, die eerst BAO_ADDR leest en terugvalt op VAULT_ADDR.
  • Een ClusterSecretStore met de naam vault-backend. Elke ExternalSecret in het cluster wijst ernaar. Die naam is het enige meevallertje hier, want stroomafwaarts verandert er niets als de store achter de naam verandert.
  • Een alertgroep op vault_core_unsealed en vault_autopilot_failure_tolerance, plus 1072 vault_*-series in Prometheus. OpenBao hield het vault-prefix op zijn metrics, maar verhuisde de service-registration-labels van vault naar openbao. De Services van de chart selecteren op die labels. Mijn scrape-config ook, tot ik hem op de headless Service richtte. Klein spul, maar klein spul is precies wat een dashboard leegmaakt.
  • De data. Dit is de kostenpost die groeide terwijl ik wachtte. De migratiegids van OpenBao is een in-place node swap, met een waarschuwingskader: “This guide was only tested against Vault 1.14.1. Newer versions are untested and unsupported: OpenBao makes no guarantees about storage compatibility with Vault.” Ik zit op 2.1, Vault doet niet aan downgrades, dus terug naar 1.14.1 kan niet. De migratie is geen swap meer. Het is m’n disaster-recovery-export, afgespeeld in een lege OpenBao met bao kv put, plus elke policy, lease en auth mount met de hand opnieuw.
  • Een document met de naam 09-secrets-vault.md, en zes maanden vault kv put typen.

Tel het op en je zit op een week aan avonden, met een rollbackplan voor de ene stap die aan de data komt. Vault voor beginners op deze blog zegt nog steeds Vault, en dat blijft zo tot de migratie klaar is, want ik ga geen lab beschrijven dat ik niet draai.

En waarom is het dan nog niet gebeurd? Betaald werk gaat voor. In mijn lab plaagt deze regel alleen mij. Bij klanten kost dezelfde regel, met VMware of Red Hat erin, klauwen met geld, en die klanten weten dat ik al jaren over open source praat, dus ze staan in de rij te wachten tot ik tijd heb. Mijn eigen migratie staat achter hen in die rij. Vault beantwoordt ondertussen gewoon requests, en geen risicoregister dat ik ooit heb gezien heeft “een week aan avonden” als begrotingspost.

De ene die ik wél heb gedaan

MinIO heb ik wél afgemaakt. Het is ook de ene keer dat het register werkte, al stond het alleen in m’n hoofd.

Ik voegde MinIO toe op 5 april 2026, op een Longhorn-volume van 250 GiB. De community-repository stond sinds december in maintenance mode en werd op 25 april gearchiveerd, twintig dagen na mijn commit. Ik heb de commitdatum, dus ontkennen heeft geen zin. Het installeerde, het draaide, het had nog jaren doorgedraaid. Alleen wist ik dat MinIO vaag deed over z’n broncode en z’n licentie, en daarom keek ik al om me heen. Anders had ik in augustus gewoon MinIO door een nieuwere MinIO vervangen.

Opslag bepaalde de maand. Longhorn repliceerde het volume twee keer, MinIO wilde daar bovenop ook nog repliceren, en de pool zat vol. Ceph in een homelab, daar had ik geen zin in. Overkill. Garage repliceert zichzelf op een kale disk per node, dus werd het Garage. Vijf consumers gingen één voor één over, de chunks van Loki, de Postgres-back-ups, het backup-target van Longhorn, de Vault-export, de opslag van Forgejo, met MinIO nog draaiend tot zijn request-teller een half uur lang op nul stond. Toen ging hij weg, op 11 augustus, en de snapshotketen onder dat volume gaf 470 GiB terug. Bijna twee keer wat het volume claimde.

Twee dingen gingen kapot, allebei bij het opruimen. Ik probeerde met sed één veld uit een KV-secret te knippen op de JSON-respons en schreef de hele API-respons terug als het secret, request-id en lease-metadata incluis. Daar zakt je broek van af. vault kv rollback -version=3 redde me. Daarna haalde ik de OIDC-client uit één van twee kopieën van het Keycloak-realm en miste de tweede, die binnen het uur stilletjes zou zijn gestopt met syncen. Geen van beide fouten had iets met MinIO te maken. Allebei hadden ze te maken met een migratie met de hand doen op een doordeweekse avond. Dat, meer dan welke licentietekst ook, is wat elke rij in die tabel kost.

Portainer, de rij waar deze post mee begon, heb ik zelf niet eens. De Docker-host die mijn huishoudelijke apps draait, Nextcloud en een Minecraft-server onder andere, is compose-bestanden en een shell. Die aankondiging heeft me niks gekost, en daar heb ik helemaal niks voor gedaan. Schrijf hem toch op. De volgende aankondiging gaat over iets dat je wél hebt geïnstalleerd.

Vijf vragen per component

De uitweg is kleiner dan de tabel doet lijken. Vijf vragen per component, een middagje werk, en de antwoorden gaan met een datum het register in.

  1. Wie bezit het auteursrecht, en is er een CLA ? Een CLA geeft het bedrijf het recht om morgen te herlicentiëren. Een DCO , die de kernel en de CNCF gebruiken, laat het auteursrecht bij elke bijdrager, zodat een herlicentiëring ieders instemming nodig heeft.
  2. Wie bezit het merk? Doet een foundation dat, dan houdt een fork de naam en de zoekresultaten. Doet het bedrijf dat, dan begint de fork als een vreemde.
  3. Wie betaalt de maintainers, en hoe verdienen ze hun geld? Bijna elke herlicentiëring in de tabel kwam van een single vendor wiens omzet afhangt van een hosted of ondersteunde versie van dezelfde code, en wiens aankondiging iemand anders noemt die het verkoopt. Dat kun je jaren vóór de blogpost al op de prijspagina lezen.
  4. Kan een fork of een alternatief beginnen waar jij staat? Is het dataformaat gedocumenteerd, en leest iets anders het vandaag? Voor Vault werkte een raft-snapshot tot 1.14 en is het nu de KV-export. Voor Portainer zijn de stacks compose-bestanden. Voor MinIO is het mc mirror naar alles wat S3 spreekt.
  5. Heeft de leverancier dit eerder gedaan? Sentry twee keer, CockroachDB twee keer, Red Hat twee keer, Broadcom twee keer, Redis drie keer als je de modules van 2018 meetelt, MinIO vier keer in elf maanden. Elastic en Redis deden het één keer en kwamen halverwege terug. Een leverancier die het één keer heeft gedaan, heeft je de procedure laten zien.

Beslis daarna per soort. Vault-achtig: prijs de uitgang en zet er een datum op, want het gat groeit elke maand. MinIO-achtig: houd de data in een formaat dat het alternatief leest, en dan kan het besluit wachten, want een bevroren S3-server is nog steeds een S3-server. Portainer-achtig: pak de gratis sleutel en ga verder met je dag.

Self-hosting verplaatst dit risico alleen maar. Bij een managed dienst verandert het verdienmodel van de leverancier je rekening. Op je eigen hardware verandert het je upgradepad. Een bevroren editie blijft op je eigen hardware draaien en een gestopte managed dienst niet, en dat verschil is het soevereiniteitsargument één laag lager. Je bezit de binary die vanavond draait en de data erin. De release van volgend jaar was altijd al van wie het omzetdoel van de leverancier bepaalt.

Niemand in die tabel heeft iets verkeerd gedaan. Bedrijven met een loonlijst veranderden de voorwaarden die ze mochten veranderen, zeiden dat netjes, en bleven ondersteunen wat ze hadden uitgeleverd. Ik las de post van Portainer op een maandag en haalde m’n schouders op. Dat schouderophalen wás het probleem, want ik had die regel nooit opgeschreven.

De Vault-regel staat nu in het register, gedateerd 23 september 2026. OpenBao staat op de lijst. Achter de klanten. Sorry, lab.