Fra Nais-plattformen · Bygd for gjenbruk
unleasherator
Feature toggles er enkle. Å drifte Unleash er jobben — unleasherator tar den.
Unleash er et åpent system for feature toggles, opprinnelig laget i Norge. Å skru en bryter av og på tar sekunder — men noen må kjøre serveren bak. unleasherator er en Kubernetes-operator som setter opp Unleash-instanser, deler ut API-tokens og kobler clustre sammen, slik at team kan bytte funksjoner i stedet for å drifte servere.
- ny-soknadsdialog
- digital-postkasse
- forenklet-innlogging
- mobil-forsteside
Så enkelt er det for teamet. Bak hver bryter står en Unleash-server som må driftes og oppdateres — det er den delen operatoren tar.
Hva den styrer
unleasherator utvider Kubernetes med fire egne ressurstyper. Du beskriver hva du vil ha; operatoren avstemmer virkeligheten mot beskrivelsen.
- Unleash
- En komplett Unleash-instans i clusteret — deployment, ingress og tilkobling til databasen. Operatoren driver hele livsløpet.
- ApiToken
- En API-token mot en Unleash-instans, klargjort og lagt i en Kubernetes-secret der applikasjonen leser den.
- RemoteUnleash
- En kobling til en Unleash-instans som kjører et annet sted, autentisert med en admin-token fra en secret. Slik når flere clustre samme feature toggles.
- ReleaseChannel
- En felles oppdateringskanal som ruller ut nye Unleash-versjoner på tvers av instansene dine, med strategi for helsesjekk og rollback.
Federasjon — å dele feature toggles mellom instanser — settes opp som et felt på Unleash-ressursen, ikke som en egen ressurstype.
Slik får teamet en Unleash-instans
Ingen manuelle servere, ingen tokens sendt på e-post. Teamet ber om det de trenger med noen få ressurser, og operatoren gjør resten.
Steg 1
Be om en instans
Legg en
Unleash-ressurs i clusteret og pek den mot databasen. Operatoren setter opp Unleash-serveren og holder den kjørende.Steg 2
Få en token
Legg til en
ApiToken. Operatoren oppretter tokenen mot instansen og legger den i en secret applikasjonen kan lese.Steg 3
Del på tvers
Skal andre clustre bruke samme feature toggles, peker du en
RemoteUnleashmot instansen.ReleaseChannelholder versjonene i takt.
Kom i gang
Prosjektet er bygd med Kubebuilder og følger vanlig operator-oppsett. Installer ressurstypene, rull ut controlleren, og legg inn eksemplene.
$ make install$ make docker-build docker-push IMG=<registry>/unleasherator:tag
$ make deploy IMG=<registry>/unleasherator:tag$ kubectl apply -f config/samples/Det du trenger
- Et Kubernetes-cluster med
kubectlsatt opp - En PostgreSQL-database som Unleash-instansene lagrer dataene sine i
- Docker hvis du vil bygge ditt eget operator-image
Gjenbruk i egen virksomhet
Koden er åpen, men vær ærlig om hva du overtar før du tar den i drift.
MIT-lisensiert og fritt å bruke. Vi lover ingen support-SLA, men issues og pull requests er velkomne. Driften er ditt ansvar.
unleasherator er bygd for og driftes på Nais-plattformen. Den er ikke testet i andre miljøer, så regn med litt egeninnsats hvis du vil kjøre den i eget cluster.
Åpen kildekode fra Nav