Variables de GitLab CI desde Crunu, vinculadas con id_tokens
Da a los trabajos de GitLab CI las variables de un entorno de Crunu. Vincula el token de servicio a un proyecto, una ref y un entorno con los id_tokens OIDC.
- Soporte
- Funciona con Crunu hoy: el soporte de GitLab CI forma parte del producto.
- Funciones de Crunu
- CI/CD
- Comprobado
- Con Crunu 6.0.0 el 27 de octubre de 2026
Funciones de Crunu que funcionan con GitLab CI
Cada función de abajo funciona igual en cada integración: el servidor guarda datos cifrados, y solo las personas, las máquinas y los tokens a los que concedes acceso pueden descifrarlos.
CI/CD
Da a cada pipeline un token de servicio limitado a sus entornos y vincúlalo a tu proveedor de CI con OIDC, para que un token filtrado no pueda iniciar sesión por sí solo.
Más información
Cómo funciona con GitLab CI
En esta página
Qué hace Crunu en GitLab CI
Un trabajo ejecuta tu comando mediante crunu run. El agente crunu inicia sesión con un token de servicio, comprueba las firmas, descifra las variables en memoria e inicia el comando con ellas. No se escribe nada en disco.
crunu run --env web-app/staging -- npm testEl token recibe solo los entornos que concedes. Con una vinculación de CI (OIDC), GitLab emite para el trabajo un token con tu servidor de Crunu como audiencia, y el token de Crunu solo funciona junto con él, para la ruta del proyecto, la ref y el entorno que fijes. crunu lee el token de GitLab de CRUNU_ID_TOKEN por su cuenta.
Configuración
- En Crunu, abre Service tokens y elige New service token. Concede los entornos que necesita el trabajo. El token se muestra una sola vez.
- En GitLab, abre Settings → CI/CD → Variables y añade
CRUNU_TOKENcomo variable enmascarada y protegida. - Añade
CRUNU_SERVER,CRUNU_VERSION,CRUNU_INSTALL_URL,CRUNU_INSTALL_SHA256yCRUNU_BINARY_SHA256con los valores del bloque CI setup de la página del token. En la nube,CRUNU_SERVEReshttps://app.crunu.com. - Opcional: añade una vinculación de CI (OIDC) en la página del token. Elige el proveedor GitLab y fija
project_path,ref,ref_typey, para un token de production,environment.
Trabajo de ejemplo
La imagen del trabajo necesita sh y curl o wget. Las imágenes node, python y alpine los tienen.
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 testPara un token de production, la vinculación de CI (OIDC) podría exigir:
project_path:kiteline/web-appref:mainref_type:branchenvironment:production
Las plantillas de trabajo .crunu
Los pasos de instalación vienen también como un archivo de plantilla con dos trabajos ocultos. Tus trabajos los heredan con extends:
.crunuinstala una versión fijada decrunuenbefore_script, comprueba el SHA-256 del instalador y del binario, y muestracrunu version;.crunu-oidchace lo mismo y añadeid_tokens, para tokens con una vinculación de CI.
Guarda una copia de la plantilla en tu repositorio, para que sus cambios se revisen junto con tu código. Si prefieres incluirla desde otro proyecto de GitLab, fija ref a un commit, no a una rama.
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 deployEl before_script propio de un trabajo sustituye al de la plantilla, porque extends no combina listas de comandos. Vuelve a añadir de forma explícita los pasos de la plantilla:
test:
extends: .crunu
before_script:
- !reference [.crunu, before_script]
- npm ci
script:
- crunu run --env web-app/staging -- npm testQué se comprueba
- La suma de verificación del instalador se compara antes de ejecutarlo. Si no coincide, el trabajo se detiene y
crununo se instala. - El instalador comprueba la suma de verificación del binario y lo ejecuta una vez antes de colocarlo en su sitio.
- Los valores mal formados, como una suma de verificación que falta o una dirección que no es
https://, se rechazan antes de descargar nada.
Runners y sumas de verificación
crunu funciona en Linux y macOS, en amd64 y arm64. No hay versión para Windows. La suma de verificación del bloque CI setup es para Linux amd64; para runners arm64, define sumas de verificación por plataforma a partir del manifest.json de la versión publicada.
Revocación
Abre el token en Crunu y elige Revoke. Su siguiente inicio de sesión se rechaza, y un trabajo que ya está en marcha termina con lo que recibió. Si el token pudo filtrarse, rota también las claves de los entornos que se le dieron y reemite los valores que contienen en sus proveedores.
Relacionado
Dudas frecuentes
¿No está aquí? Escribe a support@crunu.com y te responderá una persona.
¿Cómo obtiene crunu el token OIDC de GitLab?
Añade id_tokens con CRUNU_ID_TOKEN y tu servidor de Crunu como audiencia, o amplía la plantilla .crunu-oidc. crunu lee la variable por su cuenta.
¿Por qué mi trabajo perdió los pasos de instalación de la plantilla?
El before_script propio de un trabajo sustituye al de la plantilla, porque extends no combina listas de comandos. Añade !reference [.crunu, before_script] al principio del tuyo.
¿Qué imágenes de trabajo funcionan?
Cualquier imagen con sh y curl o wget, como node, python o alpine.