Integra Cloud Deploy en otros sistemas

Puedes integrar Cloud Deploy en algunos de los otros sistemas en los que confías para la entrega de software. En esta página, se describe cómo integrar Cloud Deploy en los siguientes elementos:

  • Herramientas de prueba
  • Administración de flujos de trabajo

Consulta Integra al sistema de CI para obtener información sobre cómo llamar a Cloud Deploy desde tu canalización de CI.

Antes de comenzar

En las instrucciones de esta página, se da por sentado que ya cumples las siguientes condiciones:

Realiza la integración con pruebas automatizadas

Puedes usar Cloud Deploy con Pub/Sub para integrar pruebas a tu canalización de entrega, de modo que puedas promover la versión de forma automática, con el fin de una entrega continua.

También puedes usar anotaciones en un lanzamiento para proporcionar un vínculo a los resultados de la prueba. Para obtener más información, consulta Usa etiquetas y anotaciones con Cloud Deploy.

Uso de Pub/Sub para automatizar la promoción

  1. 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/...
  2. Cuando recibas una notificación de que la implementación se realizó correctamente, ejecuta las pruebas en la aplicación implementada.

  3. Cuando las pruebas se ejecuten de forma correcta, llama a Cloud Deploy para realizar la promoción automática a la siguiente etapa:

    gcloud deploy releases promote RELEASE_NAME \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --annotations=KEY=VALUE,...
    

    Donde:

    • RELEASE_NAME

      es el nombre del lanzamiento. Es obligatorio ingresar este valor.

    • PIPELINE_NAME

      es el nombre de la canalización de entrega que administra esta versión. Este valor es obligatorio.

    • REGION

      es la región en la que se ejecuta la canalización. Si configuraste la propiedad deploy/region, puedes omitir esta marca.

    • KEY=VALUE,...

      es una lista de uno o más pares clave-valor de cadena, separados por comas, que pueden contener información sobre los resultados de tus pruebas y otra información sobre la prueba. Por ejemplo:

      gcloud deploy releases promote --annotations="from_target=test,status=stable"

      Las anotaciones en el lanzamiento son inmutables, por lo que si agregas una anotación de estado, no podrás actualizar ese estado más adelante en el mismo lanzamiento.

Usa anotaciones para proporcionar acceso a los resultados de la prueba

Si tienes una URL que dirige a donde se puede acceder a los resultados de la prueba, puedes proporcionar esa URL como una anotación en un lanzamiento mediante la marca --annotations. Por 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 Usa etiquetas y anotaciones con Cloud Deploy.

Integra en la administración de flujos de trabajo de terceros

Cloud Deploy publica mensajes operativos en Pub/Sub. La herramienta de administración de flujos de trabajo puede suscribirse a estos temas de Pub/Sub y usarlos para activar flujos de trabajo específicos.

Para las 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 trabajo mágico para obtener la aprobación y, luego, llamar a gcloud deploy rollouts approve.

La cuenta que emite el comando rollouts approve debe tener el rol de IAM predefinido roles/clouddeploy.approver.

Para configurar un flujo de trabajo de aprobación externa, haz lo siguiente:

  1. Exigir aprobación en el destino.

    En la definición de ese destino, incluye requireApproval: true.

  2. Para consumir los mensajes, suscríbete al tema clouddeploy-approvals de Pub/Sub y configura el sistema de administración de flujos de trabajo.

  3. Cuando el sistema de administración de flujos de trabajo recibe un mensaje del tema clouddeploy-approvals que incluye "Action": "Required", inicia un flujo de trabajo de aprobación configurado según los requisitos de la organización.

    El mensaje también incluye una referencia al lanzamiento que se aprobará en 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.

  4. El sistema de administración de flujos de trabajo muestra la aprobación o el rechazo a Cloud Deploy con el 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 solicitó la aprobación.

    • PIPELINE_NAME

      es la canalización de entrega que administra la implementación de tu aplicación.

    • RELEASE_NAME

      es el nombre de la versión con la que está asociado este lanzamiento.

    • REGION

      es la región en la que se ejecuta la canalización de entrega.

Por ejemplo:

gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1