En esta página, se describe cómo crear la canalización de entrega y los destinos que describen dónde y cómo Cloud Deploy implementará tu aplicación. Consulta Esquema del archivo de configuración para obtener una descripción de la estructura del archivo YAML para las canalizaciones de entrega y los destinos.
Acerca de la canalización de entrega y los destinos
Tu canalización de entrega describe una progresión de los destinos de implementación. Puedes definir esos destinos en el mismo archivo que la canalización de entrega o en uno o más archivos separados.
Después de crear el archivo o los archivos de definición de la canalización de entrega y del destino, ejecuta gcloud deploy apply en cada uno de esos archivos para registrarlos como recursos de Cloud Deploy.
Define la canalización de entrega y los destinos
Aquí se describe la estructura de los archivos de configuración de la canalización de entrega y del destino. descrita aquí.
Puedes llamar a este archivo como quieras. Por convención, una configuración de canalización de entrega
que incluye definiciones de destino se
llama clouddeploy.yaml, y una que, en cambio, hace referencia a destinos definidos en
uno o más archivos separados se llama delivery-pipeline.yaml.
El destino puede apuntar a GKE, clústeres adjuntos de GKE, Cloud Run o destinos personalizados. Dentro de una canalización de entrega, todos los destinos deben hacer referencia al mismo tipo de entorno de ejecución (por ejemplo, todo GKE o todo Cloud Run).
Crea una canalización de entrega y destinos con la Google Cloud consola
Puedes usar la Google Cloud consola para crear una nueva canalización de entrega y un destino o 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 la canalización de entrega, haz lo siguiente:
En la página Canalizaciones de entrega, haz clic en Crear.
Proporciona un nombre (o conserva el predeterminado) y, de manera opcional, una descripción.
Selecciona tu región.
Elige tu entorno de ejecución.
Para GKE, elige Google Kubernetes Engine o selecciona Cloud Run si ese es el entorno de ejecución en el que realizas la implementación.
En Destino nuevo, proporciona un nombre (o conserva el predeterminado).
Si deseas solicitar aprobación en este destino, selecciona la casilla de verificación Requiere aprobación para los lanzamientos.
Si vas a usar una estrategia de implementación canary en este destino, selecciona la casilla de verificación Habilitar canary.
Haz clic en Listo.
Haz clic en Agregar destino y sigue estos pasos para cada destino adicional que desees crear.
Cuando tengas todos los destinos, haz clic en Crear para crear la canalización de entrega y los recursos de destino.
Registra la canalización de entrega y los destinos
Si creaste tu canalización y tus destinos con la Google Cloud consola, no es necesario que lo hagas.
Para registrar tu canalización de entrega con Cloud Deploy, ejecuta gcloud deploy apply una vez por cada archivo de definición separado. Es decir, si defines tres destinos en tres archivos, ejecutarías el comando cuatro veces: una para la canalización de entrega y una para cada destino.
El siguiente comando registra una canalización 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 entrega que puede administrar la implementación de tus versiones y recursos de destino que pueden usar cualquier canalización de entrega en el mismo proyecto y región.
Un ejemplo de un solo archivo
El comando de este ejemplo registra una canalización de entrega y destinos que se definen en el mismo archivo:
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1
Un ejemplo que usa archivos diferentes
En este ejemplo, hay tres destinos definidos en tres archivos separados, 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 establecido 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 hace referencia esa canalización.
Crea la canalización de entrega y los destinos con Terraform
También puedes usar el proveedor de Google Cloud Terraform para crear recursos de canalización de entrega y de destino.
El proveedor beta de Terraform puede incluir compatibilidad con las funciones de Cloud Deploy en versión preliminar.Google Cloud
Edita las canalizaciones y los destinos existentes
Luego, puedes editar cualquier canalización de entrega o configuración 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 existentes, ya que las administra la canalización de entrega original
.
Requiere aprobación manual para una implementación
Para solicitar aprobación manual para un destino determinado, incluye la siguiente propiedad en la definición del destino:
requireApproval: true
El valor predeterminado es false. Si omites esta propiedad de la configuración de la canalización de entrega o no proporcionas ningún valor para ella, la implementación en este destino no requiere aprobación. (Sin embargo, la persona que llama que intenta promocionar al destino aún necesita el permiso de IAM clouddeploy.rollouts.create).
Incluso puedes solicitar aprobación manual en el primer destino. 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 un estado de versión pendiente hasta que se otorga la aprobación.
¿Qué sigue?
Consulta Implementa tu aplicación para obtener información sobre cómo invocar tu canalización de entrega y crear una versión.