Variablen für GitLab CI aus Crunu, gebunden mit id_tokens
Geben Sie Jobs in GitLab CI die Variablen einer Crunu-Umgebung. Binden Sie das Service-Token mit id_tokens von GitLab an Projektpfad, Ref und Umgebung.
- Unterstützung
- Funktioniert heute mit Crunu: Die Unterstützung für GitLab CI ist Teil des Produkts.
- Crunu-Funktionen
- CI/CD
- Geprüft
- Mit Crunu 6.0.0 am 27. Oktober 2026
Crunu-Funktionen, die mit GitLab CI funktionieren
Jede Funktion unten arbeitet in jeder Integration gleich: Der Server bewahrt Chiffretext auf, und nur die Menschen, Maschinen und Tokens, denen Sie Zugriff gewähren, können entschlüsseln.
CI/CD
Geben Sie jeder Pipeline ein Service-Token, das auf ihre Umgebungen beschränkt ist, und binden Sie es per OIDC an Ihren CI-Anbieter, damit sich ein geleaktes Token nicht allein anmelden kann.
Mehr erfahren
So funktioniert es mit GitLab CI
Auf dieser Seite
Was Crunu in GitLab CI tut
Ein Job führt Ihren Befehl über crunu run aus. Der Agent crunu meldet sich mit einem Service-Token an, prüft Signaturen, entschlüsselt die Variablen im Arbeitsspeicher und startet den Befehl damit. Nichts wird auf die Festplatte geschrieben.
crunu run --env web-app/staging -- npm testDas Token bekommt nur die Umgebungen, die Sie freigeben. Mit einer CI-Bindung (OIDC) stellt GitLab dem Job ein Token mit Ihrem Crunu-Server als Audience aus, und das Crunu-Token funktioniert nur zusammen damit, für den Projektpfad, die Ref und die Umgebung, die Sie festlegen. crunu liest das GitLab-Token selbst aus CRUNU_ID_TOKEN.
Einrichtung
- Öffnen Sie in Crunu Service tokens und wählen Sie New service token. Gewähren Sie die Umgebungen, die der Job braucht. Das Token wird nur einmal angezeigt.
- Öffnen Sie in GitLab Settings → CI/CD → Variables und fügen Sie
CRUNU_TOKENals maskierte, geschützte Variable hinzu. - Fügen Sie
CRUNU_SERVER,CRUNU_VERSION,CRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256undCRUNU_BINARY_SHA256mit den Werten aus dem Block CI setup auf der Seite des Tokens hinzu. In der Cloud istCRUNU_SERVERgleichhttps://app.crunu.com. - Optional: Fügen Sie auf der Seite des Tokens eine CI-Bindung (OIDC) hinzu. Wählen Sie den Anbieter GitLab und setzen Sie
project_path,ref,ref_typeund, für ein Produktions-Token,environment.
Beispiel-Job
Das Image des Jobs braucht sh und curl oder wget. Die Images node, python und alpine haben sie.
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 testFür ein Produktions-Token könnte die CI-Bindung (OIDC) Folgendes verlangen:
project_path:kiteline/web-appref:mainref_type:branchenvironment:production
Die Job-Vorlagen .crunu
Die Installationsschritte gibt es auch als Vorlagendatei mit zwei versteckten Jobs. Ihre Jobs erben sie mit extends:
.crunuinstalliert eine festgelegte Version voncrunuinbefore_script, prüft die SHA-256-Prüfsumme des Installers und des Binarys und gibtcrunu versionaus;.crunu-oidctut dasselbe und fügtid_tokenshinzu, für Tokens mit CI-Bindung.
Bewahren Sie eine Kopie der Vorlage in Ihrem Repository auf, damit Änderungen daran mit Ihrem Code geprüft werden. Binden Sie sie stattdessen aus einem anderen GitLab-Projekt ein, pinnen Sie ref auf einen Commit, nicht auf einen 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 deployDas eigene before_script eines Jobs ersetzt das der Vorlage, denn extends führt Befehlslisten nicht zusammen. Fügen Sie die Schritte der Vorlage ausdrücklich wieder hinzu:
test:
extends: .crunu
before_script:
- !reference [.crunu, before_script]
- npm ci
script:
- crunu run --env web-app/staging -- npm testWas geprüft wird
- Die Prüfsumme des Installers wird verglichen, bevor er läuft. Stimmt sie nicht, bricht der Job ab, und
crunuwird nicht installiert. - Der Installer prüft die Prüfsumme des Binarys und führt es einmal aus, bevor er es an seinen Platz legt.
- Fehlerhafte Werte, etwa eine fehlende Prüfsumme oder eine Adresse, die nicht
https://ist, werden abgelehnt, bevor irgendetwas heruntergeladen wird.
Runner und Prüfsummen
crunu läuft unter Linux und macOS, auf amd64 und arm64. Einen Build für Windows gibt es nicht. Die Prüfsumme im Block „CI setup“ gilt für Linux amd64; für Runner mit arm64 setzen Sie Prüfsummen pro Plattform aus der manifest.json des Releases.
Widerrufen
Öffnen Sie das Token in Crunu und wählen Sie Revoke. Seine nächste Anmeldung wird abgelehnt, und ein bereits laufender Job läuft mit dem zu Ende, was er erhalten hat. Falls das Token geleakt sein könnte, rotieren Sie auch die Schlüssel der Umgebungen, die es erhalten hat, und stellen Sie die Werte darin bei ihren Anbietern neu aus.
Weiterführend
Fragen aus der Praxis
Nicht dabei? Schreiben Sie an support@crunu.com, und ein Mensch antwortet.
Wie bekommt crunu das OIDC-Token von GitLab?
Fügen Sie id_tokens mit CRUNU_ID_TOKEN und Ihrem Crunu-Server als Audience hinzu, oder erweitern Sie die Vorlage .crunu-oidc. crunu liest die Variable selbst.
Warum hat mein Job die Installationsschritte der Vorlage verloren?
Das eigene before_script eines Jobs ersetzt das der Vorlage, denn extends führt Befehlslisten nicht zusammen. Setzen Sie !reference [.crunu, before_script] an den Anfang Ihres eigenen.
Welche Job-Images funktionieren?
Jedes Image mit sh und curl oder wget, etwa node, python oder alpine.