Despliegue desde CI/CD
Despliega desde GitLab CI
Requisitos: un Workload en marcha, el id de su instancia de servicio, el token de despliegue y zaroz-deploy.sh en el repositorio como deploy/zaroz-deploy.sh.
Variables
En Settings > CI/CD > Variables:
| Clave | Ajustes |
|---|---|
ZAROZ_TOKEN | el token zaroz_.... Masked y Protected, para que solo lo lean las canalizaciones de ramas protegidas (main) |
ZAROZ_SERVICE | el UUID de la instancia de servicio |
CI_DEPLOY_USER, CI_DEPLOY_PASSWORD | solo para una imagen privada. Crea un deploy token con solo read_registry (Settings > Repository > Deploy tokens) y GitLab rellena estas dos variables en los trabajos automáticamente cuando se llama gitlab+deploy-token |
La canalización
Code
Cómo se comporta:
resource_group: productionhace que GitLab ejecute un trabajo de despliegue a la vez y en orden, así un commit antiguo nunca aterriza sobre uno más nuevo.needs: [build]inicia el despliegue en cuanto se sube la imagen.- El trabajo de despliegue falla si el despliegue falla, tras volver a poner la imagen anterior. La entrada
environment: productionte da un historial de despliegues en GitLab junto al de Zaroz. - Añade
when: manuala lasrulesdel trabajo para tener un despliegue a producción con un botón.
Revertir
En Deploy > Environments > production, pulsa el botón de reversión de un despliegue anterior: GitLab vuelve a ejecutar el trabajo de ese commit, que despliega la imagen de ese commit. A mano: IMAGE=$CI_REGISTRY_IMAGE:<sha antiguo> sh deploy/zaroz-deploy.sh.
GitLab autoalojado
No cambia nada salvo el host del registro, que ya está en CI_REGISTRY_IMAGE. Zaroz descarga la imagen desde dentro de su clúster, así que el registro debe ser accesible desde internet (o permitir las direcciones de salida de Zaroz).
Last modified on
