Variabelen voor GitLab CI uit Crunu, gebonden met id_tokens
Geef jobs in GitLab CI de variabelen van één Crunu-omgeving. Bind het servicetoken met de OIDC-id_tokens van GitLab aan een projectpad, ref en omgeving.
- Ondersteuning
- Werkt vandaag met Crunu: ondersteuning voor GitLab CI hoort bij het product.
- Functies van Crunu
- CI/CD
- Gecontroleerd
- Tegen Crunu 6.0.0 op 27 oktober 2026
Functies van Crunu die met GitLab CI werken
Elke functie hieronder werkt in elke integratie op dezelfde manier: de server bewaart versleutelde data, en alleen de mensen, machines en tokens die je toegang geeft, kunnen ontsleutelen.
CI/CD
Geef elke pipeline een servicetoken dat beperkt is tot de eigen omgevingen, en bind het met OIDC aan je CI-provider, zodat een gelekt token niet op zichzelf kan inloggen.
Lees meer
Zo werkt het met GitLab CI
Op deze pagina
Wat Crunu doet in GitLab CI
Een job voert je opdracht uit via crunu run. De agent crunu logt in met een servicetoken, controleert handtekeningen, ontsleutelt de variabelen in het geheugen en start de opdracht ermee. Er wordt niets naar schijf geschreven.
crunu run --env web-app/staging -- npm testHet token krijgt alleen de omgevingen die je toekent. Met een CI-binding (OIDC) geeft GitLab de job een token met je Crunu-server als audience, en het Crunu-token werkt alleen samen daarmee, voor het projectpad, de ref en de omgeving die je instelt. crunu leest het GitLab-token zelf uit CRUNU_ID_TOKEN.
Instellen
- Open in Crunu Service tokens en kies New service token. Ken de omgevingen toe die de job nodig heeft. Het token wordt maar één keer getoond.
- Open in GitLab Settings → CI/CD → Variables en voeg
CRUNU_TOKENtoe als gemaskeerde, beschermde variabele. - Voeg
CRUNU_SERVER,CRUNU_VERSION,CRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256enCRUNU_BINARY_SHA256toe met de waarden uit het blok CI setup op de pagina van het token. In de cloud isCRUNU_SERVERgelijk aanhttps://app.crunu.com. - Optioneel: voeg op de pagina van het token een CI-binding (OIDC) toe. Kies de provider GitLab en stel
project_path,ref,ref_typeen, voor een token voor production,environmentin.
Voorbeeldjob
De image van de job heeft sh en curl of wget nodig. De images node, python en alpine hebben die.
test:
image: node:24
id_tokens:
CRUNU_ID_TOKEN:
aud: https://app.crunu.com # your Crunu server; only if the token has a CI binding (OIDC)
script:
- curl -sSf "$CRUNU_INSTALL_URL" -o /tmp/crunu-install.sh
- echo "$CRUNU_INSTALL_SHA256 /tmp/crunu-install.sh" | sha256sum -c -
- sh /tmp/crunu-install.sh --version "$CRUNU_VERSION" --sha256 "$CRUNU_BINARY_SHA256" --user-install
- crunu run --env web-app/staging -- npm testVoor een token voor production kan de CI-binding (OIDC) dit vereisen:
project_path:kiteline/web-appref:mainref_type:branchenvironment:production
De jobsjablonen .crunu
De installatiestappen bestaan ook als sjabloonbestand met twee verborgen jobs. Je jobs nemen ze over met extends:
.crunuinstalleert een vastgezette versie vancrunuinbefore_script, controleert de SHA-256 van het installatiescript en van de binary, en toontcrunu version;.crunu-oidcdoet hetzelfde en voegtid_tokenstoe, voor tokens met een CI-binding.
Bewaar een kopie van het sjabloon in je repository, zodat wijzigingen eraan samen met je code worden gereviewd. Neem je het in plaats daarvan op uit een ander GitLab-project, zet ref dan vast op een commit, niet op een branch.
include:
- local: ci/crunu.gitlab-ci.yml
test:
image: node:24
extends: .crunu
script:
- crunu run --env web-app/staging -- npm test
deploy:
image: node:24
extends: .crunu-oidc # the production token has an OIDC rule: project_path, ref, environment
environment: production
rules:
- if: $CI_COMMIT_BRANCH == "main"
script:
- crunu run --env web-app/production -- npm run deployDe eigen before_script van een job vervangt die van het sjabloon, omdat extends lijsten met opdrachten niet samenvoegt. Voeg de stappen van het sjabloon expliciet weer toe:
test:
extends: .crunu
before_script:
- !reference [.crunu, before_script]
- npm ci
script:
- crunu run --env web-app/staging -- npm testWat er wordt gecontroleerd
- De checksum van het installatiescript wordt vergeleken voordat het draait. Komt die niet overeen, dan stopt de job en wordt
crununiet geïnstalleerd. - Het installatiescript controleert de checksum van de binary en voert die één keer uit voordat die op zijn plek komt.
- Ongeldige waarden, zoals een ontbrekende checksum of een adres dat niet met
https://begint, worden geweigerd voordat er iets wordt gedownload.
Runners en checksums
crunu draait op Linux en macOS, op amd64 en arm64. Er is geen build voor Windows. De checksum in het blok CI setup is voor Linux amd64; stel voor runners met arm64 checksums per platform in uit de manifest.json van de release.
Intrekken
Open het token in Crunu en kies Revoke. Het volgende inloggen ervan wordt geweigerd, en een job die al draait, maakt af met wat hij heeft ontvangen. Kan het token zijn gelekt, roteer dan ook de sleutels van de omgevingen die het kreeg, en geef de waarden daarin opnieuw uit bij hun providers.
Verwant
Veelgestelde vragen
Staat je vraag er niet bij? Mail naar support@crunu.com, dan antwoordt een mens.
Hoe krijgt crunu het OIDC-token van GitLab?
Voeg id_tokens toe met CRUNU_ID_TOKEN en je Crunu-server als audience, of breid het sjabloon .crunu-oidc uit. crunu leest de variabele zelf.
Waarom is mijn job de installatiestappen van het sjabloon kwijt?
De eigen before_script van een job vervangt die van het sjabloon, omdat extends lijsten met opdrachten niet samenvoegt. Zet !reference [.crunu, before_script] bovenaan die van jou.
Welke images werken voor jobs?
Elke image met sh en curl of wget, zoals node, python of alpine.