Ce document explique comment valider un déploiement Cloud Deploy.
Vous pouvez configurer Cloud Deploy pour vérifier qu'une application que vous avez déployée sur une cible fonctionne correctement. La validation s'effectue à l'aide de votre ou vos propres images de test. Vous configurez Cloud Deploy pour qu'il exécute ces tests une fois le déploiement terminé.
Comment fonctionne la validation du déploiement ?
Vous configurez une ou plusieurs cibles dans votre pipeline de déploiement pour la validation du déploiement en définissant les tâches à exécuter.
Une fois l'application déployée, Cloud Deploy exécute les tâches de validation dans l'environnement d'exécution Cloud Deploy.
La réussite ou l'échec des tests exécutés indique la réussite ou l'échec de la validation :
La réussite de la validation est déterminée par le code de sortie généré par le conteneur.
0indique que l'opération a réussi. Un code de sortie non nul indique un échec. Pour générer le résultat de validation attendu, assurez-vous que le conteneur se ferme avec le code de sortie approprié. Si plusieurs conteneurs sont exécutés lors de la validation, ils doivent tous réussir pour que la validation aboutisse.Si la validation échoue, le déploiement échoue également.
Si un déploiement échoue lors de la validation, vous pouvez le constater en inspectant le déploiement :

Vous pouvez ignorer ou réessayer une validation ayant échoué.
Vous pouvez également arrêter une tâche de validation en cours.
Composants utilisés pour la validation
La ressource rollout inclut les objets suivants, qui permettent de vérifier le déploiement :
Phase
Ensemble d'opérations (jobs) d'un déploiement qui sont regroupées de manière logique, par exemple un déploiement ou un déploiement et une vérification.
Job
Opération spécifique à effectuer sur un déploiement, comme déployer ou valider.
Exécution du job
Enfant de la ressource de déploiement, l'exécution du job est une instance de job, par exemple une tentative de déploiement.
Pour en savoir plus sur les ressources Cloud Deploy, consultez Architecture du service Cloud Deploy.
Configurer Cloud Deploy pour la validation du déploiement
Pour activer la validation du déploiement pour une cible Cloud Deploy, vous devez ajouter une strophe verify à une ou plusieurs cibles dans la progression d'un pipeline de livraison, comme illustré dans cet exemple :
apiVersion: deploy.cloud.google.com/v1
kind: DeliveryPipeline
metadata:
name: my-demo-app
description: main application pipeline
serialPipeline:
stages:
- targetId: dev
profiles: []
strategy:
standard:
verify:
tasks:
- type: container
image: "VERIFY_IMAGE"
command: [COMMANDS_TO_RUN]
args: [LIST_OF_ARGS]
env: {VERIFY_TASK_ENV_MAP}
Dans ce fichier YAML :
VERIFY_IMAGE
Nom de l'image que vous souhaitez exécuter pour le job de validation. Par exemple,
us-central1-docker.pkg.dev/gcp-project-id-12345/my-repository/my-app:v1.2pour une image Artifact Registry.COMMANDS_TO_RUN
Liste des points d'entrée à exécuter sur ce conteneur.
"/bin/sh"est une commande typique à spécifier ici pour appeler un shell.LIST_OF_ARGS
Il s'agit d'une liste d'arguments à fournir à la commande. Il s'agit d'une liste séparée par des virgules, avec chaque argument entre guillemets. Si votre COMMAND_TO_RUN est
"/bin/sh", l'un des arguments ici serait"-c", et un autre argument serait la commande entière que vous souhaitez exécuter dans le shell que vous invoquez.Exemple :
command: ["/bin/sh"] args: ["-c", `echo "This command ran!"`]VERIFY_TASK_ENV_MAP
Il s'agit d'une carte des variables d'environnement transmises au conteneur, au format
KEY:VAL.
L'opération de validation est exécutée dans son propre environnement d'exécution. Cet environnement d'exécution peut être configuré pour VERIFY de la même manière que pour RENDER et DEPLOY.
Exécuter la validation sur le cluster d'application
Par défaut, la validation du déploiement s'exécute dans l'environnement d'exécution Cloud Deploy. Vous pouvez également configurer Skaffold pour qu'il exécute la validation sur le même cluster que celui sur lequel votre application est exécutée.
Pour exécuter vos conteneurs de validation sur le cluster, vous devez les configurer sous la strophe verify de votre fichier skaffold.yaml. Pour chaque conteneur défini, vous devez également définir executionMode.kubernetesCluster.
verify:
- name:
container:
name:
image:
command:
args:
executionMode:
kubernetesCluster:
Voici un exemple de section de validation qui inclut executionMode pour appeler le conteneur de validation sur le cluster d'application :
verify:
- name: