Variabili GitLab CI da Crunu, legate con id_tokens
Dai ai job di GitLab CI le variabili di un ambiente Crunu. Lega il token di servizio a percorso di progetto, ref e ambiente con gli id_tokens OIDC di GitLab.
- Supporto
- Funziona con Crunu oggi: il supporto per GitLab CI fa parte del prodotto.
- Funzionalità di Crunu
- CI/CD
- Verificato
- Con Crunu 6.0.0 il 27 ottobre 2026
Funzionalità di Crunu che funzionano con GitLab CI
Ogni funzionalità qui sotto funziona allo stesso modo in ogni integrazione: il server conserva testo cifrato, e solo le persone, le macchine e i token a cui concedi l’accesso possono decifrare.
CI/CD
Dai a ogni pipeline un token di servizio limitato ai suoi ambienti e legalo al tuo provider CI con OIDC, così un token trapelato non può accedere da solo.
Scopri di più
Come funziona con GitLab CI
In questa pagina
Cosa fa Crunu in GitLab CI
Un job esegue il tuo comando tramite crunu run. L’agente crunu accede con un token di servizio, controlla le firme, decifra le variabili in memoria e avvia il comando con quelle variabili. Nulla viene scritto su disco.
crunu run --env web-app/staging -- npm testIl token riceve solo gli ambienti che concedi. Con un vincolo CI (OIDC), GitLab emette per il job un token con il tuo server Crunu come audience, e il token Crunu funziona solo insieme a quello, per il percorso di progetto, il ref e l’ambiente che imposti. crunu legge da solo il token GitLab da CRUNU_ID_TOKEN.
Configurazione
- In Crunu, apri Service tokens e scegli New service token. Concedi gli ambienti di cui il job ha bisogno. Il token viene mostrato una sola volta.
- In GitLab, apri Settings → CI/CD → Variables e aggiungi
CRUNU_TOKENcome variabile mascherata e protetta. - Aggiungi
CRUNU_SERVER,CRUNU_VERSION,CRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256eCRUNU_BINARY_SHA256con i valori del blocco CI setup nella pagina del token. Nel cloud,CRUNU_SERVERèhttps://app.crunu.com. - Facoltativo: aggiungi un vincolo CI (OIDC) nella pagina del token. Scegli il provider GitLab e imposta
project_path,ref,ref_typee, per un token di produzione,environment.
Job di esempio
L’immagine del job ha bisogno di sh e di curl o wget. Le immagini node, python e alpine li hanno.
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 testPer un token di produzione, il vincolo CI (OIDC) potrebbe richiedere:
project_path:kiteline/web-appref:mainref_type:branchenvironment:production
I template di job .crunu
I passaggi di installazione sono disponibili anche come file di template con due job nascosti. I tuoi job li ereditano con extends:
.crunuinstalla una versione fissata dicrunuinbefore_script, controlla lo SHA-256 dell’installer e del binario e stampacrunu version;.crunu-oidcfa lo stesso e aggiungeid_tokens, per i token con un vincolo CI.
Tieni una copia del template nel tuo repository, così le sue modifiche vengono revisionate insieme al tuo codice. Se invece lo includi da un altro progetto GitLab, fissa ref a un commit, non a un 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 deployIl before_script del job sostituisce quello del template, perché extends non unisce gli elenchi di comandi. Aggiungi di nuovo in modo esplicito i passaggi del template:
test:
extends: .crunu
before_script:
- !reference [.crunu, before_script]
- npm ci
script:
- crunu run --env web-app/staging -- npm testCosa viene controllato
- Il checksum dell’installer viene confrontato prima che venga eseguito. Se non corrisponde, il job si ferma e
crununon viene installato. - L’installer controlla il checksum del binario e lo esegue una volta prima di metterlo al suo posto.
- I valori malformati, come un checksum mancante o un indirizzo che non è
https://, vengono rifiutati prima di scaricare qualsiasi cosa.
Runner e checksum
crunu funziona su Linux e macOS, su amd64 e arm64. Non esiste una build per Windows. Il checksum nel blocco CI setup è per Linux amd64; per i runner arm64, imposta i checksum per piattaforma dal manifest.json della release.
Revoca
Apri il token in Crunu e scegli Revoke. Il suo accesso successivo viene rifiutato, e un job già in esecuzione termina con ciò che ha ricevuto. Se il token potrebbe essere trapelato, ruota anche le chiavi degli ambienti che gli erano stati concessi e riemetti presso i fornitori i valori che contengono.
Correlati
Dubbi frequenti
Non trovi la risposta? Scrivi a support@crunu.com e ti risponderà una persona.
Come ottiene crunu il token OIDC di GitLab?
Aggiungi id_tokens con CRUNU_ID_TOKEN e il tuo server Crunu come audience, oppure estendi il template .crunu-oidc. crunu legge la variabile da solo.
Perché il mio job ha perso i passaggi di installazione del template?
Il before_script del job sostituisce quello del template, perché extends non unisce gli elenchi di comandi. Aggiungi !reference [.crunu, before_script] all’inizio del tuo.
Quali immagini funzionano per i job?
Qualsiasi immagine con sh e curl o wget, come node, python o alpine.