Subir desde CI
Las guías de CI construyen una imagen, la suben a un registro y la despliegan. Si el registro es tu propio Zaroz Registry, dos cosas se simplifican: subes con una credencial que solo puede hacer eso, y el Workload descarga la imagen sin ningún inicio de sesión de registro en su origen (Zaroz da al clúster su propia credencial de pull para tu registro).
Antes de empezar, termina el Inicio rápido del Registry hasta el paso 2.
Una credencial para la pipeline
Crea una credencial con el nombre de la pipeline y alcance Pull y push. No "Pull, push y borrado": una construcción que puede borrar etiquetas puede borrar lo que corre en producción. Guarda el usuario y el secreto en el almacén de secretos de tu CI como ZAROZ_REGISTRY_USERNAME y ZAROZ_REGISTRY_SECRET. Guarda el host de acceso como ZAROZ_REGISTRY_HOST y el nombre de la imagen como ZAROZ_REGISTRY_IMAGE (<host de acceso>/<espacio de nombres>/mi-app); estos dos no son secretos.
Usa una credencial por pipeline y entorno. Revocarla detiene esa pipeline y nada más; un token ya emitido caduca en minutos.
GitHub Actions
Code
En el job de despliegue de la guía de GitHub Actions, omite REGISTRY_USERNAME y REGISTRY_PASSWORD: la imagen es tuya y el clúster ya puede descargarla.
GitLab CI
Code
Pon las variables en Settings > CI/CD > Variables, enmascaradas, y protegidas si la rama está protegida. ${ZAROZ_REGISTRY_IMAGE%%/*} deja solo el host de acceso del nombre de la imagen. El job de despliegue es el de la guía de GitLab CI, de nuevo sin variables de inicio de sesión del registro.
Forgejo Actions y Gitea Actions
Code
El runner necesita acceso a un daemon de Docker. El paso de despliegue es el de la guía de Forgejo y Gitea.
Mantén el registro ordenado
Una pipeline que sube una etiqueta por commit llena el registro. Cuando una versión ya está publicada, borra las etiquetas de construcciones viejas desde la pestaña Etiquetas, o con una credencial de alcance "Pull, push y borrado" guardada fuera de la pipeline de construcción, por ejemplo en una tarea programada que llame a DELETE /subscriptions/{id}/registry/repositories/tags. El tamaño almacenado, y tu factura, bajan tras la siguiente pasada de limpieza del registro.
