Ce document explique comment configurer des tâches dans Cloud Deploy. Une tâche est une unité de travail qui peut être utilisée comme hook de déploiement, pour la vérification du déploiement, pour l'analyse du déploiement ou pour un rendu personnalisé ou un déploiement personnalisé dans un type de cible personnalisée.
Vous pouvez configurer une tâche sur le pipeline de déploiement (dans le cadre de la stratégie) ou le rendu ou le déploiement du type de cible personnalisée.
Avec les tâches, vous pouvez utiliser des paramètres système en les intégrant dans la configuration de votre tâche.
Définir une tâche
Vous pouvez définir une tâche dans la configuration de votre pipeline de diffusion ou dans la définition d'un type de cible personnalisé. Le code YAML suivant montre la strophe task utilisée dans les deux cas :
task:
type: container
image: IMAGE
command: [COMMANDS_TO_RUN]
args: [LIST_OF_ARGS]
env:
- KEY1:VAL1
- KEY2:VAL2
...
Pour la configuration task :
typeSpécifie le type de tâche en cours de configuration. Seule l'option
containerest acceptée.imageChemin d'accès à l'image du conteneur.
commandIl s'agit de la ou des commandes à exécuter sur le conteneur.
argsCollection d'arguments pour
command.envIl s'agit d'une collection de variables d'environnement à fournir au conteneur en cours d'exécution.
Paramètres système en tant que variables d'environnement de la tâche
Cloud Deploy propose des paramètres générés par le système que vous pouvez utiliser comme variables d'environnement dans vos tâches, à l'aide du champ env de la tâche container. Les paramètres de modèle peuvent être présents dans les champs de clé ou de valeur d'une entrée de carte env.
Voici quelques exemples de cas d'utilisation :
Transmettez le nom du service Cloud Run, l'URL du service et le nom de la révision en tant que variables d'environnement.
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 }}"Utiliser plusieurs paramètres dans une même entrée.
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 }}"
Paramètres système disponibles
Cloud Deploy fournit les paramètres système suivants que vous pouvez utiliser dans la configuration de vos tâches au format suivant :
${{ parameter }}
$${{ }}.
Voici la liste des paramètres disponibles pour la création de modèles :
| Nom | Définition |
|---|---|
location |
Région contenant les ressources Cloud Deploy. Disponible lors de la création de la version. |
project.num |
Numéro du projet Google Cloud contenant les ressources Cloud Deploy. Disponible lors de la création de la version. |
project.id |
ID du projet Google Cloud . Disponible lors de la création de la version. |
delivery_pipeline.name |
Nom de ressource entièrement spécifié du pipeline de diffusion. Disponible lors de la création de la version. |
delivery_pipeline.id |
ID du pipeline de livraison. Disponible lors de la création de la version. |
target.name |
Nom de ressource entièrement spécifié de la cible. Disponible lors de la création de la version. |
target.id |
ID de la cible. Disponible lors de la création de la version. |
release.name |
Nom de ressource complet de la version. Disponible lors de la création de la version. |
release.id |
ID de la version. Disponible lors de la création de la version. |
rollout.name |
Nom de ressource complet du déploiement. Disponible lors de la création du déploiement. |
rollout.id |
ID du déploiement. Disponible lors de la création du déploiement. |
job.id |
ID du job en cours d'exécution. Disponible lors de la création du déploiement. |
phase.id |
La phase du déploiement qui contient le job pour les tâches. Disponible lors de la création du déploiement. |
job_run.name |
Nom de ressource entièrement spécifié de l'exécution du job qui représente l'exécution actuelle du job. Disponible lors de la création du déploiement. |
job_run.id |
ID de l'exécution de job qui représente l'exécution actuelle du job. Disponible lors de la création du déploiement. |
deploy_params |
Carte des paramètres de déploiement associés à la cible. Exemple : deploy_params['KEY']
Si vous essayez d'accéder à une clé qui n'existe pas, une chaîne vide est renvoyée. Disponible lors de la création de la version. |
Pour les cibles de type RUN : |
|
cloud_run.project |
Projet dans lequel le service Cloud Run a été créé. Disponible lors de la création de la version. |
cloud_run.location |
Région dans laquelle le service Cloud Run est déployé. Disponible lors de la création de la version. |
render.metadata.cloud_run.service.name |
Nom du service Cloud Run déployé. Disponible une fois l'opération de rendu terminée. |
render.metadata.cloud_run.service.id |
ID du service Cloud Run déployé. Disponible une fois l'opération de rendu terminée. |
rollout.metadata.cloud_run.service.url |
URL que les utilisateurs finaux utiliseront pour accéder à votre service. Vous les trouverez dans les détails du service Cloud Run pour votre service, dans la console Google Cloud . Disponible une fois l'opération de déploiement terminée. |
render.metadata.cloud_run.revision.name |
Nom complet de la révision du service Cloud Run en cours de déploiement. Disponible une fois l'opération de rendu terminée. |
render.metadata.cloud_run.revision.id |
ID de révision du service Cloud Run en cours de déploiement. Disponible une fois l'opération de rendu terminée. |
rollout.metadata.cloud_run.previous_revision.name |
Nom complet de la révision précédente du service Cloud Run en cours de déploiement. Disponible une fois l'opération de déploiement terminée. |
rollout.metadata.cloud_run.previous_revision.id |
ID de révision précédent du service Cloud Run en cours de déploiement. Disponible une fois l'opération de déploiement terminée. |
Pour les cibles de type GKE : |
|
gke.cluster.name |
Nom complet de la ressource du cluster GKE. Disponible lors de la création de la version. |
gke.cluster.id |
ID du cluster GKE. Disponible lors de la création de la version. |
gke.cluster.project |
ID/numéro du projet du cluster GKE. Disponible lors de la création de la version. |
gke.cluster.location |
Emplacement du cluster GKE. Disponible lors de la création de la version. |
Pour les cibles de type ANTHOS : |
|
anthos.membership.project |
ID/numéro du projet du cluster GKE Enterprise. Disponible lors de la création de la version. |
anthos.membership.location |
Emplacement du cluster GKE Enterprise. Disponible lors de la création de la version. |
anthos.membership.name |
Nom de ressource complet de l'abonnement GKE Enterprise. Disponible lors de la création de la version. |
anthos.membership.id |
ID de l'abonnement GKE Enterprise. Disponible lors de la création de la version. |
Pour les cibles Kubernetes (cibles de type GKE et ANTHOS) : |
|
render.metadata.kubernetes.deployment |
Nom du déploiement en cours de mise à jour. Cette valeur n'est pas définie si les fichiers manifestes contiennent plusieurs déploiements. Disponible une fois l'opération de rendu terminée. |
render.metadata.kubernetes.canary_deployment |
Nom du déploiement Canary dans un déploiement Canary automatisé. Pour la phase stable, cette valeur est la même que render.metadata.kubernetes.deployment, car il n'y a pas de version Canary dans la phase stable. Pour les autres phases, cela équivaut à render.metadata.kubernetes.deployment avec -canary à la fin.Disponible une fois l'opération de rendu terminée. |
render.metadata.kubernetes.namespace |
Espace de noms des ressources déployées. Cette valeur n'est pas définie si les fichiers manifestes contiennent plusieurs espaces de noms. Disponible une fois l'opération de rendu terminée. |
Pour les cibles de type CUSTOM_TARGET_TYPE : |
|
render.metadata.custom |
Carte des métadonnées de rendu à partir d'un rendu personnalisé. Exemple : render.metadata.custom['KEY']Toute tentative d'accès à une clé inexistante génère une chaîne vide. Disponible une fois l'opération de rendu terminée. |
rollout.metadata.custom |
Carte des métadonnées de déploiement à partir d'un déploiement personnalisé. Exemple : rollout.metadata.custom['KEY']Toute tentative d'accès à une clé inexistante génère une chaîne vide. Disponible une fois l'opération de déploiement terminée. |
Variables d'environnement disponibles
Cloud Deploy fournit et renseigne également les variables d'environnement suivantes dans l'environnement d'exécution. Vous pouvez utiliser ces variables d'environnement dans votre hook de déploiement, votre tâche de validation ou votre cible personnalisée pour le rendu ou le déploiement.
ANTHOS_MEMBERSHIPPour les cibles de type
ANTHOS, nom complet de la ressource de l'abonnement Anthos.CLOUD_RUN_LOCATIONPour les cibles de type
RUN, la région dans laquelle le service Cloud Run est déployé.CLOUD_RUN_PROJECTPour les cibles de type
RUN, il s'agit du projet dans lequel le service Cloud Run a été créé.CLOUD_RUN_SERVICEPour les cibles de type
RUN, nom du service Cloud Run déployé.CLOUD_RUN_SERVICE_URLSPour les cibles de type
RUN, il s'agit de l'URL ou des URL (liste séparée par des virgules) que les utilisateurs finaux utiliseront pour accéder à votre service. Vous les trouverez dans les détails du service Cloud Run pour votre service, dans la consoleGoogle Cloud . Les URL sont générées par Cloud Run une fois que votre ou vos services Cloud Run ont été déployés. Par conséquent, cette variable d'environnement n'est disponible que dans les hooks post-déploiement et les jobs de validation.CLOUD_RUN_REVISIONPour les cibles de type
RUN, il s'agit de la révision spécifique du service Cloud Run.GKE_CLUSTERPour les cibles de type
GKE, le nom de ressource complet du cluster Google Kubernetes Engine, par exempleprojects/p/locations/us-central1/clusters/dev.TARGET_TYPEType d'exécution spécifique de la cible.
GKE,ANTHOSouRUN. Pour les cibles personnalisées, cette valeur ne sera pas définie.CLOUD_DEPLOY_LOCATIONRégion contenant les ressources Cloud Deploy.
CLOUD_DEPLOY_DELIVERY_PIPELINEID du pipeline de livraison.
CLOUD_DEPLOY_TARGETID de la cible.
CLOUD_DEPLOY_PROJECTNuméro de projet Google Cloud pour le projet contenant les ressources Cloud Deploy.
CLOUD_DEPLOY_PROJECT_IDID du projet Google Cloud .
CLOUD_DEPLOY_RELEASEID de la version dans laquelle les hooks s'exécuteront.
CLOUD_DEPLOY_ROLLOUTID du déploiement contenant les jobs pour les hooks.
CLOUD_DEPLOY_JOB_RUNID de l'exécution du job qui représente l'exécution actuelle du job.
CLOUD_DEPLOY_PHASELa phase du déploiement qui contient le job pour le crochet de déploiement, le job de validation ou le rendu ou déploiement personnalisé.
Étapes suivantes
- Découvrez comment exécuter des crochets de déploiement à l'aide de tâches.
- Découvrez comment vérifier votre déploiement à l'aide de tâches.
- En savoir plus sur les cibles personnalisées