Configura tareas

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:

  • type

    Especifica el tipo de tarea que se configura. Solo se admite container.

  • image

    Es la ruta de acceso a la imagen del contenedor.

  • command

    Es el comando o los comandos que se ejecutarán en el contenedor.

  • args

    Es una colección de argumentos para command.

  • env

    Es 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_MEMBERSHIP

    Para los destinos de tipo ANTHOS, es el nombre del recurso completamente especificado de la membresía de Anthos.

  • CLOUD_RUN_LOCATION

    Para los destinos de tipo RUN, es la región en la que se implementa el servicio de Cloud Run.

  • CLOUD_RUN_PROJECT

    Para los destinos de tipo RUN, es el proyecto en el que se creó el servicio de Cloud Run.

  • CLOUD_RUN_SERVICE

    Para los destinos de tipo RUN, es el nombre del servicio de Cloud Run implementado.

  • CLOUD_RUN_SERVICE_URLS

    Para 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_REVISION

    Para los destinos de tipo RUN, es la revisión específica del servicio de Cloud Run.

  • GKE_CLUSTER

    Para 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_TYPE

    Es el tipo de tiempo de ejecución específico del destino. Puede ser GKE, ANTHOS o RUN. En el caso de los objetivos personalizados, no se establecerá este parámetro.

  • CLOUD_DEPLOY_LOCATION

    Es la región que contiene los recursos de Cloud Deploy.

  • CLOUD_DEPLOY_DELIVERY_PIPELINE

    Es el ID de la canalización de entrega.

  • CLOUD_DEPLOY_TARGET

    Es el ID del objetivo.

  • CLOUD_DEPLOY_PROJECT

    Número del proyecto Google Cloud que contiene los recursos de Cloud Deploy.

  • CLOUD_DEPLOY_PROJECT_ID

    ID del proyecto Google Cloud .

  • CLOUD_DEPLOY_RELEASE

    Es el ID de la versión en la que se ejecutarán los hooks.

  • CLOUD_DEPLOY_ROLLOUT

    Es el ID del lanzamiento que contiene los trabajos de los hooks.

  • CLOUD_DEPLOY_JOB_RUN

    Es el ID de la ejecución del trabajo que representa la ejecución actual del trabajo.

  • CLOUD_DEPLOY_PHASE

    Es 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?