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 destinos de implementación. Puedes definir esos destinos en el mismo archivo que la canalización de distribución o en uno o varios archivos independientes.
Después de crear la canalización de entrega y el archivo o los archivos de definición de destino, ejecuta 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 apuntar a GKE, GKE Enterprise o Cloud Run. En una pipeline de entrega, todos los destinos deben hacer referencia al mismo tipo de tiempo de ejecución (por ejemplo, todos los clústeres de GKE o todos los de GKE Enterprise).
Crea un flujo de procesamiento y objetivos de entrega 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:
En la página Pipelines de entrega, haga clic en Crear.
Proporciona un nombre (o mantén el predeterminado) y, si quieres, una descripción.
Selecciona tu región.
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.
En Nuevo objetivo, indica un nombre (o deja el predeterminado).
Si quiere que se requiera la aprobación para este destino, seleccione la casilla Requerir aprobación para los lanzamientos.
Si vas a usar una estrategia de despliegue canary en este destino, selecciona la casilla Habilitar canary.
Haz clic en Listo.
Haga clic en Añadir objetivo y siga estos pasos por cada objetivo adicional que quiera crear.
Cuando tenga todos los destinos, haga 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 define tres objetivos en tres archivos, deberá ejecutar 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 un flujo de procesamiento de entrega que puede gestionar la implementación de tus lanzamientos y recursos de destino que se pueden usar en cualquier flujo de procesamiento de entrega 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 elementos de destino definidos en tres archivos independientes, por lo que debes ejecutar 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 canalización 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
Más adelante, puede editar cualquier canal de distribución o configuración de destino y ejecutar gcloud
deploy apply
para actualizar el canal 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 entrega 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
Consulta Implementar tu aplicación para saber cómo invocar tu flujo de procesamiento de publicación y crear una versión.