Puedes integrar Cloud Deploy con algunos de los otros sistemas que usas para la distribución de software. En esta página se describe cómo integrar Cloud Deploy con lo siguiente:
- Herramientas de prueba
- Gestión de flujos de trabajo
Consulta Integrar con tu sistema de CI para saber cómo llamar a Cloud Deploy desde tu flujo de procesamiento de CI.
Antes de empezar
En las instrucciones de esta página se da por hecho que ya cumples las siguientes condiciones:
Tienes al menos una canalización de distribución definida y registrada en Cloud Deploy.
Tienes al menos un destino definido y tu canal de distribución hace referencia a ese destino.
Ha configurado las notificaciones de Pub/Sub para recibir notificaciones de los siguientes temas:
clouddeploy-operations
clouddeploy-approvals
Integración con pruebas automatizadas
Puedes usar Cloud Deploy con Pub/Sub para integrar las pruebas en tu flujo de procesamiento de entrega, de forma que puedas promocionar la versión automáticamente para disfrutar de una entrega continua.
También puedes usar anotaciones en un lanzamiento para proporcionar un enlace a los resultados de las pruebas. Para obtener más información, consulta el artículo Usar etiquetas y anotaciones con Cloud Deploy.
Usar Pub/Sub para automatizar la promoción
Escucha los mensajes de Pub/Sub del tema
clouddeploy-operations
.El mensaje contiene los siguientes atributos:
Action: SUCCEED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Cuando recibas una notificación de que la implementación se ha realizado correctamente, ejecuta las pruebas en la aplicación implementada.
Cuando las pruebas se realicen correctamente, llama a Cloud Deploy para que ascienda automáticamente a la siguiente fase:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
donde:
RELEASE_NAME
es el nombre de la versión. Este valor es obligatorio.
PIPELINE_NAME
es el nombre del flujo de procesamiento de entrega que gestiona esta versión. Este valor es obligatorio.
REGION
es la región en la que se ejecuta la canalización. Si has definido la propiedad
deploy/region
, puedes omitir esta marca.KEY=VALUE,...
es una lista de uno o varios pares de cadenas clave-valor separados por comas que pueden contener información sobre los resultados de las pruebas y otra información relacionada con las pruebas. Veamos un ejemplo:
gcloud deploy releases promote --annotations="from_target=test,status=stable"
Las anotaciones de los lanzamientos son inmutables, por lo que, si añades una anotación de estado, no podrás actualizar ese estado en el mismo lanzamiento más adelante.
Usar anotaciones para proporcionar acceso a los resultados de las pruebas
Si tienes la URL que apunta a la ubicación donde se pueden consultar los resultados de la prueba, puedes proporcionarla como anotación en un lanzamiento mediante la marca --annotations
.
Veamos un ejemplo:
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
Para obtener más información, consulta el artículo Usar etiquetas y anotaciones con Cloud Deploy.
Integración con la gestión de flujos de trabajo de terceros
Cloud Deploy publica mensajes operativos en Pub/Sub. Tu herramienta de gestión de flujos de trabajo puede suscribirse a estos temas de Pub/Sub y usarlos para activar flujos de trabajo específicos.
Para aprobaciones
El tema clouddeploy-approvals
notifica a tu sistema cuando se requiere una aprobación para un lanzamiento. Tu sistema de flujo de trabajo externo puede hacer su magia para obtener la aprobación y, a continuación, llamar a gcloud deploy rollouts approve
.
La cuenta que emite el comando rollouts approve
debe tener el rol de gestión de identidades y accesos predefinido roles/clouddeploy.approver
.
Para configurar un flujo de trabajo de aprobación externo, sigue estos pasos:
Requerir aprobación en el objetivo.
En la definición de ese objetivo, incluya
requireApproval: true
.Para consumir los mensajes, suscríbete al tema de
clouddeploy-approvals
Pub/Sub y configura tu sistema de gestión del flujo de trabajo.Cuando tu sistema de gestión de flujos de trabajo recibe un mensaje del tema
clouddeploy-approvals
que incluye"Action": "Required"
, se inicia un flujo de trabajo de aprobación configurado según los requisitos de tu organización.El mensaje también incluye una referencia al lanzamiento que se debe aprobar, con el siguiente formato:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
El resultado del flujo de trabajo de aprobación es la aprobación o el rechazo del lanzamiento.
Tu sistema de gestión de flujo de trabajo devuelve la aprobación o el rechazo a Cloud Deploy en forma del siguiente comando:
El comando de aprobación es el siguiente:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
El comando para rechazar el lanzamiento es el siguiente:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
donde:
ROLLOUT
es el nombre del lanzamiento para el que se ha solicitado la aprobación.
PIPELINE_NAME
es el flujo de procesamiento de entrega que gestiona el despliegue de tu aplicación.
RELEASE_NAME
es el nombre de la versión con la que está asociada esta implementación.
REGION
es la región en la que se ejecuta el flujo de procesamiento de entrega.
Veamos un ejemplo:
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1