En este documento, se describe cómo configurar tareas en Cloud Deploy. Una tarea es una unidad de trabajo que se puede usar como un gancho de implementación, para la verificación de la implementación, para el análisis de la implementación o para una renderización personalizada o una implementación personalizada en un tipo de destino personalizado.
Puedes configurar una tarea en la canalización de entrega (como parte de la estrategia) o en la renderización o implementación del tipo de destino personalizado.
Con las tareas, puedes usar parámetros del sistema si los incluyes en la configuración de la tarea como plantillas.
Cómo definir una tarea
Puedes definir una tarea en la configuración de tu canalización de entrega o como parte de una definición de tipo de destino personalizado. El siguiente código YAML muestra la sección task que se usa en ambos casos:
task:
type: container
image: IMAGE
command: [COMMANDS_TO_RUN]
args: [LIST_OF_ARGS]
env:
- KEY1:VAL1
- KEY2:VAL2
...
Para la configuración de task, haz lo siguiente:
typeEspecifica el tipo de tarea que se configura. Solo se admite
container.imageEs la ruta de acceso a la imagen del contenedor.
commandEs el comando o los comandos que se ejecutarán en el contenedor.
argsEs una colección de argumentos para
command.envEs una colección de variables de entorno que se proporcionarán al contenedor en ejecución.
Parámetros del sistema como variables de entorno de la tarea
Cloud Deploy ofrece parámetros generados por el sistema que puedes usar como variables de entorno en tus tareas, con el campo env en la tarea container. Los parámetros basados en plantillas pueden estar presentes en los campos de clave o valor de una entrada de mapa env.
Estos son algunos ejemplos de casos de uso:
Pasar el nombre del servicio de Cloud Run, la URL del servicio y el nombre de la revisión como variables de entorno
task: type: container image: my-image command: ["/bin/bash"] env: - RUN_SERVICE_NAME : "${{ render.metadata.cloud_run.service.name }}" - RUN_SERVICE_URL: "${{ rollout.metadata.cloud_run.service_url }}" - RUN_REVISION_NAME: "${{ render.metadata.cloud_run.revision.name }}"Usar varios parámetros en una sola entrada
task: type: container image: my-image command: ["/bin/bash"] env: - DEPLOY_PARAMS_KEY : "${{ deploy_params['FOO'] }}-with-${{ deploy_params['BAR'] }}" - "${{ project.id }}_${{ location }}" : "${{ target.id }}"
Parámetros del sistema disponibles
Cloud Deploy proporciona los siguientes parámetros del sistema que puedes usar en la configuración de tus tareas con este formato:
${{ parameter }}
$${{ }}
A continuación, se muestra la lista de parámetros disponibles para la creación de plantillas:
| Nombre | Definición |
|---|---|
location |
Es la región que contiene los recursos de Cloud Deploy. Disponible en la creación de la versión. |
project.num |
Número del proyecto Google Cloud que contiene los recursos de Cloud Deploy. Disponible en la creación de la versión. |
project.id |
ID del proyecto Google Cloud . Disponible en la creación de la versión. |
delivery_pipeline.name |
Es el nombre del recurso completamente especificado de la canalización de entrega. Disponible en la creación de la versión. |
delivery_pipeline.id |
Es el ID de la canalización de entrega. Disponible en la creación de la versión. |
target.name |
Es el nombre del recurso de destino especificado por completo. Disponible en la creación de la versión. |
target.id |
Es el ID del objetivo. Disponible en la creación de la versión. |
release.name |
Es el nombre del recurso de la versión especificado por completo. Disponible en la creación de la versión. |
release.id |
Es el ID de la versión. Disponible en la creación de la versión. |
rollout.name |
Es el nombre del recurso de la versión completamente especificado. Disponible en la creación del lanzamiento. |
rollout.id |
Es el ID de la versión. Disponible en la creación del lanzamiento. |
job.id |
Es el ID del trabajo que se está ejecutando. Disponible en la creación del lanzamiento. |
phase.id |
La fase de la versión que contiene el trabajo para las tareas. Disponible en la creación del lanzamiento. |
job_run.name |
Es el nombre del recurso completamente especificado de la ejecución del trabajo que representa la ejecución actual del trabajo. Disponible en la creación del lanzamiento. |
job_run.id |
ID de la ejecución
del trabajo que representa la ejecución actual del trabajo. Disponible en la creación del lanzamiento. |
deploy_params |
Es un mapa de los parámetros de implementación asociados con el destino. Ejemplo: deploy_params['KEY']
Si intentas acceder a una clave que no existe, se generará una cadena vacía. Disponible en la creación de la versión. |
Para los destinos de tipo RUN, se aplica lo siguiente: |
|
cloud_run.project |
Es el proyecto en el que se creó el servicio de Cloud Run. Disponible en la creación de la versión. |
cloud_run.location |
Región en la que se implementa el servicio de Cloud Run. Disponible en la creación de la versión. |
render.metadata.cloud_run.service.name |
Nombre del servicio de Cloud Run implementado. Disponible después de que se completa la operación de renderización. |
render.metadata.cloud_run.service.id |
Es el ID del servicio de Cloud Run implementado. Disponible después de que se completa la operación de renderización. |
rollout.metadata.cloud_run.service.url |
Es la URL que los usuarios finales usarán para acceder a tu servicio. Puedes encontrarlos en los detalles del servicio de Cloud Run de tu servicio, en la consola de Google Cloud . Disponible después de que se complete la operación de implementación. |
render.metadata.cloud_run.revision.name |
Es el nombre completo de la revisión del servicio de Cloud Run que se implementa. Disponible después de que se completa la operación de renderización. |
render.metadata.cloud_run.revision.id |
Es el ID de revisión del servicio de Cloud Run que se implementará. Disponible después de que se completa la operación de renderización. |
rollout.metadata.cloud_run.previous_revision.name |
Es el nombre completo de la revisión anterior del servicio de Cloud Run que se implementa. Disponible después de que se complete la operación de implementación. |
rollout.metadata.cloud_run.previous_revision.id |
Es el ID de revisión anterior del servicio de Cloud Run que se está
implementando. Disponible después de que se complete la operación de implementación. |
Para los destinos de tipo GKE, se aplica lo siguiente: |
|
gke.cluster.name |
Es el nombre del recurso completamente especificado del clúster de GKE. Disponible en la creación de la versión. |
gke.cluster.id |
Es el ID del clúster de GKE. Disponible en la creación de la versión. |
gke.cluster.project |
Es el ID o número del proyecto del clúster de GKE. Disponible en la creación de la versión. |
gke.cluster.location |
Ubicación del clúster de GKE. Disponible en la creación de la versión. |
Para los destinos de tipo ANTHOS, se aplica lo siguiente: |
|
anthos.membership.project |
Es el ID o número del proyecto del clúster de GKE Enterprise. Disponible en la creación de la versión. |
anthos.membership.location |
Ubicación del clúster de GKE Enterprise. Disponible en la creación de la versión. |
anthos.membership.name |
Es el nombre del recurso completamente especificado de la membresía de GKE Enterprise. Disponible en la creación de la versión. |
anthos.membership.id |
Es el ID de la membresía de GKE Enterprise. Disponible en la creación de la versión. |
Para los destinos de Kubernetes (destinos de tipo GKE y ANTHOS): |
|
render.metadata.kubernetes.deployment |
Es el nombre de la implementación que se está actualizando. No se configura si hay más de una implementación en los manifiestos. Disponible después de que se completa la operación de renderización. |
render.metadata.kubernetes.canary_deployment |
Es el nombre de la implementación de versiones canary en una versión canary automatizada. Para la fase estable, es lo mismo que render.metadata.kubernetes.deployment, ya que no hay ninguna versión canary en la fase estable. Para las otras fases, es lo mismo que render.metadata.kubernetes.deployment con -canary al final.Disponible después de que se completa la operación de renderización. |
render.metadata.kubernetes.namespace |
Es el espacio de nombres de los recursos que se implementan. No se configura si hay más de un espacio de nombres en los manifiestos. Disponible después de que se completa la operación de renderización. |
Para los destinos de tipo CUSTOM_TARGET_TYPE, se aplica lo siguiente: |
|
render.metadata.custom |
Es un mapa de los metadatos de renderización de una renderización personalizada. Ejemplo: render.metadata.custom['KEY']Si intentas acceder a una clave que no existe, se generará una cadena vacía. Disponible después de que se completa la operación de renderización. |
rollout.metadata.custom |
Es un mapa de los metadatos de la versión de un envío personalizado. Ejemplo: rollout.metadata.custom['KEY']Si intentas acceder a una clave que no existe, se generará una cadena vacía. Disponible después de que se complete la operación de implementación. |
Variables de entorno disponibles
Cloud Deploy también proporciona y completa las siguientes variables de entorno en el entorno de ejecución. Puedes usar estas variables de entorno como parte de tu gancho de implementación, trabajo de verificación o destino personalizado de renderización o implementación.
ANTHOS_MEMBERSHIPPara los destinos de tipo
ANTHOS, es el nombre del recurso completamente especificado de la membresía de Anthos.CLOUD_RUN_LOCATIONPara los destinos de tipo
RUN, es la región en la que se implementa el servicio de Cloud Run.CLOUD_RUN_PROJECTPara los destinos de tipo
RUN, es el proyecto en el que se creó el servicio de Cloud Run.CLOUD_RUN_SERVICEPara los destinos de tipo
RUN, es el nombre del servicio de Cloud Run implementado.CLOUD_RUN_SERVICE_URLSPara los destinos de tipo
RUN, son las URLs (lista separada por comas) que los usuarios finales usarán para acceder a tu servicio. Puedes encontrarlos en los detalles del servicio de Cloud Run de tu servicio, en la consola deGoogle Cloud . Cloud Run genera las URLs después de que se implementan correctamente tus servicios de Cloud Run. Por lo tanto, esta variable de entorno solo está disponible en los hooks posteriores a la implementación y en los trabajos de verificación.CLOUD_RUN_REVISIONPara los destinos de tipo
RUN, es la revisión específica del servicio de Cloud Run.GKE_CLUSTERPara los destinos de tipo
GKE, es el nombre del recurso completamente especificado del clúster de Google Kubernetes Engine, por ejemplo,projects/p/locations/us-central1/clusters/dev.TARGET_TYPEEs el tipo de tiempo de ejecución específico del destino. Puede ser
GKE,ANTHOSoRUN. En el caso de los objetivos personalizados, no se establecerá este parámetro.CLOUD_DEPLOY_LOCATIONEs la región que contiene los recursos de Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEEs el ID de la canalización de entrega.
CLOUD_DEPLOY_TARGETEs el ID del objetivo.
CLOUD_DEPLOY_PROJECTNúmero del proyecto Google Cloud que contiene los recursos de Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDID del proyecto Google Cloud .
CLOUD_DEPLOY_RELEASEEs el ID de la versión en la que se ejecutarán los hooks.
CLOUD_DEPLOY_ROLLOUTEs el ID del lanzamiento que contiene los trabajos de los hooks.
CLOUD_DEPLOY_JOB_RUNEs el ID de la ejecución del trabajo que representa la ejecución actual del trabajo.
CLOUD_DEPLOY_PHASEEs la fase de la versión que contiene el trabajo para el gancho de implementación, el trabajo de verificación o la renderización o implementación personalizadas.
¿Qué sigue?
- Aprende a ejecutar ganchos de implementación con tareas
- Obtén más información para verificar tu implementación con tareas
- Obtén más información sobre los objetivos personalizados