Crea tu flujo de procesamiento de entrega y tus objetivos

En esta página se describe cómo crear la canalización de entrega y los destinos que describen dónde y cómo desplegará Cloud Deploy tu aplicación. Consulta el esquema del archivo de configuración para obtener una descripción de la estructura del archivo YAML de las canalizaciones y los destinos de entrega.

Acerca del flujo de procesamiento de entrega y los objetivos

Tu flujo de procesamiento de entrega describe una progresión de objetivos de implementación. Puedes definir esos destinos en el mismo archivo que la canalización de entrega o en uno o varios archivos independientes.

Una vez que haya creado la canalización de entrega y el archivo o los archivos de definición de destino, ejecute gcloud deploy apply en cada uno de esos archivos para registrarlos como recursos de Cloud Deploy.

Definir el flujo de lanzamiento y los objetivos

La estructura de los archivos de configuración del flujo de procesamiento de entrega y del destino se describe aquí.

Puedes dar al archivo el nombre que quieras. Por convención, una configuración de canalización de entrega que incluye definiciones de destino se denomina clouddeploy.yaml, y una que hace referencia a destinos definidos en uno o varios archivos independientes se denomina delivery-pipeline.yaml.

El destino puede ser GKE, clústeres de GKE adjuntos, Cloud Run o destinos personalizados. En una canalización de entrega, todos los destinos deben hacer referencia al mismo tipo de tiempo de ejecución (por ejemplo, todos los GKE o todos los Cloud Run).

Crea un flujo de procesamiento y objetivos con la Google Cloud consola

Puede usar la Google Cloud consola para crear una nueva canalización de entrega y uno o varios destinos. Esto es útil para probar Cloud Deploy, pero no es adecuado para cargas de trabajo de producción. También puedes usar la Google Cloud consola para crear una versión.

Para crear el flujo de procesamiento de entrega, sigue estos pasos:

  1. En la página Pipelines de entrega, haga clic en Crear.

  2. Proporciona un nombre (o deja el predeterminado) y, si quieres, una descripción.

  3. Selecciona tu región.

  4. Elige tu entorno de ejecución.

    En el caso de GKE, elige Google Kubernetes Engine o selecciona Cloud Run si es el tiempo de ejecución en el que vas a hacer el despliegue.

  5. En Nuevo objetivo, indica un nombre (o deja el predeterminado).

  6. Si quiere que se requiera la aprobación para este objetivo, seleccione la casilla Requerir aprobación para los lanzamientos.

  7. Si vas a usar una estrategia de despliegue canary en este destino, selecciona la casilla Habilitar canary.

  8. Haz clic en Listo.

  9. Haga clic en Añadir objetivo y siga estos pasos por cada objetivo adicional que quiera crear.

  10. Cuando tengas todos los destinos, haz clic en Crear para crear la canalización de entrega y los recursos de destino.

Registrar el flujo de procesamiento de entrega y los objetivos

Si has creado tu canal y tus destinos con la Google Cloud consola, no tienes que hacer nada.

Para registrar tu flujo de procesamiento de entrega en Cloud Deploy, ejecuta gcloud deploy apply una vez por cada archivo de definición independiente. Es decir, si defines tres objetivos en tres archivos, ejecutarías el comando cuatro veces: una para la canalización de entrega y una para cada objetivo.

El siguiente comando registra un flujo de procesamiento de entrega con sus destinos definidos en el mismo archivo.

gcloud deploy apply --file=PIPELINE_CONFIG \
                    --region=LOCATION \
                    --project=PROJECT

Ahora tienes una canalización de distribución que puede gestionar la implementación de tus lanzamientos y recursos de destino que se pueden usar en cualquier canalización de distribución del mismo proyecto y región.

Ejemplo de un solo archivo

El comando de este ejemplo registra una canalización de entrega y los destinos que se definen en el mismo archivo:

gcloud deploy apply --file=clouddeploy.yaml --region=us-central1

Ejemplo con archivos independientes

En este ejemplo, hay tres objetivos definidos en tres archivos independientes, por lo que ejecutas cuatro comandos:

gcloud deploy apply --file=delivery-pipeline.yaml --region=us-central1 && \
gcloud deploy apply --file=target_dev.yaml --region=us-central1 && \
gcloud deploy apply --file=target_staging.yaml --region=us-central1 && \
gcloud deploy apply --file=target_prod.yaml --region=us-central1

La marca --region es obligatoria a menos que hayas definido un valor predeterminado (con gcloud config set deploy/region [REGION]). La región debe ser la misma para la canalización de entrega y todos los destinos a los que haga referencia esa canalización.

Crear la canalización de distribución y los destinos con Terraform

También puedes usar el proveedor de Terraform de Google Cloud para crear recursos de pipeline de entrega y destino.

El Google Cloud proveedor de Terraform en versión beta puede incluir compatibilidad con las funciones de Cloud Deploy en versión preliminar.

Editar las carteras y los objetivos

Después, puede editar cualquier configuración de canalización de entrega o de destino y ejecutar gcloud deploy apply para actualizar la canalización o el recurso de destino. Sin embargo, esos cambios no afectan a las versiones que ya se hayan publicado, ya que se gestionan mediante la canalización de lanzamiento original.

Requerir aprobación manual para una implementación

Para requerir la aprobación manual de un objetivo concreto, incluya la siguiente propiedad en la definición del objetivo:

requireApproval: true

El valor predeterminado es false. Si omite esta propiedad en delivery-pipeline config o no le asigna ningún valor, no se requiere aprobación para implementar en este destino. Sin embargo, la persona que llama que intenta ascender al destino sigue necesitando el permiso de gestión de identidades y accesos clouddeploy.rollouts.create.

Incluso puedes requerir una aprobación manual en el primer objetivo. Cuando se crea una versión con la CLI para el primer destino, se crea automáticamente el rollout. Si se requiere aprobación, Cloud Deploy crea el rollout, pero en estado pendiente de lanzamiento hasta que se dé la aprobación.

Siguientes pasos