Administra la canalización de entrega

En esta página, se describe cómo puedes administrar tus canalizaciones de entrega, incluidas las siguientes tareas:

  • Visualiza información sobre canalizaciones, versiones, lanzamientos y objetivos
  • Usa notificaciones con tus canalizaciones
  • Aprueba y rechaza lanzamientos

Antes de comenzar

En esta página se supone que tienes una o más canalizaciones de entrega de Google Cloud Deploy en uso o listas para usarse.

Dado que Google Cloud Deploy usa Skaffold para procesar e implementar manifiestos, si no estás familiarizado con Skaffold, puedes aprender los conceptos básicos mediante la Guía de inicio rápido de Skaffold.

Visualizar y editar canalizaciones de entrega

Puedes ver una lista de todas tus canalizaciones de entrega de Google Cloud Deploy para todos tus proyectos. Puedes enumerarlas desde la línea de comandos y puedes verlas en Google Cloud Console.

Visualiza una lista de canalizaciones de entrega

Console

En Cloud Console, navega a la página Canalizaciones de entrega de Google Cloud Deploy para ver una lista de las canalizaciones de entrega disponibles.

Abrir la página Canalizaciones de entrega

La lista de canalizaciones de entrega se muestra en Cloud Console.

Página de canalizaciones de entrega en Google Cloud Console, que muestra una lista de canalizaciones

No se muestran las canalizaciones de entrega que se configuraron, pero que no se registraron con el servicio de implementación de Google Cloud.

gcloud

Con el siguiente comando, se muestra una lista de todas las canalizaciones de entrega en el proyecto actual.

gcloud deploy delivery-pipelines list

Deberías ver un resultado similar al siguiente:

$ gcloud deploy delivery-pipelines list --region=$REGION
---
createTime: '2021-05-03T16:03:11.687046682Z'
description: main application pipeline
etag: a9721c6cf665fcc7
name: projects/try-cd-dev6/locations/us-central1/deliveryPipelines/my-demo-app-1
serialPipeline:
  stages:
  - targetId: qsdev
  - targetId: qsprod
uid: f0b8148d5ddf4071964803e278acb1da
updateTime: '2021-05-03T16:03:12.780948171Z'

Como se muestra en este resultado, el comando muestra solo una canalización, con dos objetivos.

Visualiza los detalles de la canalización de entrega

En una canalización de entrega existente, puedes ver los detalles de la canalización, incluidos los metadatos de la canalización y el progreso de los objetivos.

Console

  1. En Cloud Console, navega a la página Canalizaciones de entrega de Google Cloud Deploy para ver una lista de las canalizaciones de entrega disponibles.

    Abrir la página Canalizaciones de entrega

    La lista de canalizaciones de entrega se muestra en Cloud Console.

    Lista de canalizaciones de entrega

    No se muestran las canalizaciones de entrega que se configuraron, pero que no se registraron con el servicio de implementación de Google Cloud.

  2. Haz clic en el Nombre de la canalización de entrega cuyos detalles deseas ver.

Cloud Console muestra una visualización de la canalización de entrega, así como los metadatos y el estado de la canalización:

Página de detalles de la canalización de entrega, con visualización de la canalización

Puedes hacer clic en la pestaña Destinos para ver los detalles de los objetivos que usa esta canalización de entrega:

Página de detalles de la canalización de entrega, con visualización de la canalización

gcloud

El siguiente comando muestra detalles de las canalizaciones de entrega especificadas:

gcloud deploy delivery-pipelines describe <pipeline-name> --region=<region>

Deberías ver un resultado similar al siguiente:

$ gcloud deploy delivery-pipelines describe my-demo-app-1 --region=us-central1
Delivery Pipeline:
  createTime: '2021-05-03T16:03:11.687046682Z'
  description: main application pipeline
  etag: a9721c6cf665fcc7
  name: projects/try-cd-dev6/locations/us-central1/deliveryPipelines/my-demo-app-1
  serialPipeline:
    stages:
    - targetId: qsdev
    - targetId: qsprod
  uid: f0b8148d5ddf4071964803e278acb1da
  updateTime: '2021-05-03T16:03:12.780948171Z'
Targets:
- Target: qsdev
- Target: qsprod

Como se muestra en este resultado, el comando muestra los detalles de la canalización. Anota los dos stages y los dos Target correspondientes.

Cómo revertir una implementación

Cuando reviertes un destino, Google Cloud Deploy crea un nuevo recurso rollout basado en una versión anterior.

gcloud

De forma predeterminada, la reversión usa la última versión con un lanzamiento exitoso al destino indicado, pero puedes elegir una diferente con --release.

Para revertir, ejecuta el siguiente comando desde el directorio que contiene tu canalización de entrega:

gcloud deploy targets rollback TARGET_NAME \
   --delivery-pipeline=PIPELINE_NAME \
   --release=RELEASE_NAME \
   --rollout-id=ROLLOUT_ID

En el comando anterior, --release y --rollout-id son opcionales. Usa --release para identificar una versión específica a la que deseas revertir. Si omites esta opción, Google Cloud Deploy usará la última versión buena conocida en el destino especificado.

Usa --rollout-id para asignar un identificador al rollout generado. Si omites esto, Google Cloud Deploy generará un ID para el rollout generado.

Console

  1. Abre la página Canalizaciones de entrega.

  2. Haz clic en tu canalización, que se muestra en la lista de canalizaciones de entrega.

    En la página de detalles de la canalización de entrega, se muestra una representación gráfica del progreso de tu canalización de entrega.

  3. Haz clic en el menú más el menú de más y selecciona Revertir versión.

    Selecciona la versión Revertir en el menú.

    Se muestra el formulario de reversión:

    Revertir formulario

  4. Selecciona la versión en el campo Versión.

    Esta es la versión a la que estás revirtiendo. El Nombre del lanzamiento se propaga en función de la versión seleccionada.

  5. Si lo deseas, puedes cambiar el nombre y la descripción del lanzamiento de forma predeterminada.

  6. Haz clic en Revertir.

    Se crea un lanzamiento nuevo a partir de la versión elegida y se implementa en el mismo destino.

Revertir aún más

Puedes revertir de forma manual a una versión anterior a la última que se implementó de forma correcta.

Solo ejecuta gcloud deploy releases promote con la versión anterior e incluye la opción --to-target configurada en el destino en el que deseas revertir la actualización.

Usa las notificaciones con la canalización de entrega

Google Cloud Deploy usa Pub/Sub para publicar notificaciones con dos propósitos:

  • Permitirte integrar Google Cloud Deploy en herramientas de terceros y otras herramientas de Google, como herramientas para la creación de tickets de flujos de trabajo o la infraestructura de pruebas

  • Extender Google Cloud Deploy con la lógica empresarial complementaria

Consulta Suscribirse a las notificaciones de implementación de Google Cloud para obtener más instrucciones.

Administra aprobaciones para una canalización de entrega

Puedes requerir la aprobación de cualquier destino, y puedes aprobar o rechazar versiones en ese destino.

Las aprobaciones se pueden administrar de manera programática mediante la integración del sistema de administración del flujo de trabajo (como ServiceNow) o de otro sistema, con Google Cloud Deploy mediante Pub/Sub y la API de Google Cloud Deploy.

Requiere aprobación

Para solicitar la aprobación de cualquier destino, configura requireApproval como true en la configuración de destino:

     apiVersion: deploy.cloud.google.com/v1
     kind: Target
     metadata:
      name:
     description:
     requireApproval: true

Consulta Configuración de la canalización de entrega para obtener más detalles.

Cuando un lanzamiento está pendiente de aprobación, los usuarios o sistemas que se suscriben al tema cd-approvals de Pub/Sub reciben una notificación y, luego, pueden aprobarlo o rechazarlo.

Aprueba o rechaza un lanzamiento

Cualquier usuario o cuenta de servicio con la función roles/clouddeploy.approver puede aprobar un lanzamiento de Google Cloud Deploy en un destino que requiera aprobación.

Tu sistema integrado de administración de flujos de trabajo que recibió una notificación requerida de aprobación mediante notificaciones de servicios puede aprobar o rechazar el lanzamiento mediante la API de Google Cloud Deploy.

Aprueba o rechaza de forma manual

Console

  1. En Cloud Console, navega a la página Canalizaciones de entrega de Google Cloud Deploy para ver una lista de las canalizaciones de entrega disponibles.

    Abrir la página Canalizaciones de entrega

    La lista de canalizaciones de entrega se muestra en Cloud Console. No se muestran las canalizaciones de entrega que se configuraron, pero que no se registraron con el servicio de implementación de Google Cloud.

  2. Haz clic en el nombre de la canalización de entrega.

    Se muestra la visualización de la canalización. Si la aprobación está pendiente y tienes la función roles/clouddeploy.approver, o permisos equivalentes, la visualización incluye un vínculo Revisar.

    Visualización de la canalización de entrega, con aprobación pendiente

  3. Haz clic en Revisar.

    Se muestra una lista de los lanzamientos pendientes de aprobación.

    Lanzamientos de esta canalización, con aprobación pendiente

  4. Haz clic en Revisar.

    Se muestra la pantalla Aprobar el lanzamiento.

    Detalles del lanzamiento con la aprobación pendiente

    En la pestaña Diferencia del manifiesto, se muestra cualquier cambio en el manifiesto procesado de la versión implementada actualmente (si existe) en la que estás aprobando (o rechazando) en la actualidad.

  5. Haz clic en Aprobar o Rechazar.

    Si apruebas, la aplicación se implementará en el destino. Si rechazas la solicitud, la aplicación no se implementará y no se podrá aprobar más adelante, a menos que se vuelva a promocionar.

gcloud

Un usuario con la función roles/clouddeploy.approver puede aprobar o rechazar de forma manual un lanzamiento. Para aprobarlas, debes hacer lo siguiente:

gcloud deploy rollouts approve rollout-name --delivery-pipeline=pipeline-name

Para rechazar, haz lo siguiente:

gcloud deploy rollouts reject rollout-name --delivery-pipeline=pipeline-name

Cambia una canalización de entrega que ya esté en uso

Para cambiar tu canalización de entrega, simplemente edita la definición de la canalización de entrega.

Sin embargo, es posible que no veas los resultados que esperas, debido a la forma en que Google Cloud Deploy trata la relación entre las canalizaciones y los destinos y las versiones que administran.

Cada recurso release y rollout se asocia de forma permanente con la canalización tal como se definió cuando se creó el release. Si cambias la configuración de una canalización de entrega (incluidas las definiciones de destino) después de crear una versión, esta no coincidirá con las definiciones.

Preservar los recursos de esta manera garantiza que funcionen de manera coherente en todos los destinos y no se vean interrumpidos por los cambios de configuración. Sin embargo, es posible que este comportamiento no sea el que deseas, en cuyo caso puedes crear una versión nueva para implementar mediante la canalización actualizada.

Google Cloud Deploy muestra advertencias si existe una discrepancia, y tratas de realizar ciertas acciones, como promover la versión.

Para obtener más información, consulta Instancias de canalización por versión.

Borra canalizaciones de entrega

Si tienes una canalización de entrega sin subrecursos (versiones o lanzamientos), puedes borrarla mediante la ejecución del comando siguiente:

gcloud deploy delivery-pipelines delete PIPELINE_NAME

Si la canalización que deseas borrar tiene alguna actualización o implementación asociada, debes incluir la marca --force para borrar la canalización y esos subrecursos:

gcloud deploy delivery-pipelines delete PIPELINE_NAME --force

¿Qué sigue?