Vous pouvez intégrer Google Cloud Deploy à certains des autres systèmes sur lesquels vous exploitez des logiciels. Cette page explique comment intégrer Google Cloud Deploy aux éléments suivants:
- Outils de test
- Gestion des workflows
Consultez la page Intégration à votre système CI pour découvrir comment appeler Google Cloud Deploy à partir de votre pipeline CI.
Avant de commencer
Les instructions de cette page supposent que vous remplissez déjà les conditions suivantes:
Vous avez activé les API applicables.
Vous avez au moins un pipeline de livraison défini et enregistré auprès de Google Cloud Deploy.
Vous avez au moins une cible définie, et votre pipeline de livraison fait référence à cette cible.
Vous avez configuré les notifications Pub/Sub pour recevoir les notifications des sujets suivants:
clouddeploy-operations
clouddeploy-approvals
Intégration aux tests automatisés
Vous pouvez utiliser Google Cloud Deploy avec Pub/Sub pour intégrer des tests à votre pipeline de livraison afin de promouvoir automatiquement la version pour la livraison continue.
Vous pouvez également utiliser des annotations sur un déploiement pour fournir un lien vers les résultats du test. Pour en savoir plus, consultez Utiliser des libellés et des annotations avec Google Cloud Deploy.
Automatiser la promotion avec Pub/Sub
Écouter des messages Pub/Sub à partir du sujet
clouddeploy-operations
.Le message contient les attributs suivants:
Action: SUCCEEDED
ResourceType: Rollout
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Lorsque vous recevez une notification indiquant que le déploiement a réussi, exécutez vos tests sur votre application déployée.
Une fois vos tests réussis, appelez Google Cloud Deploy pour passer automatiquement à l'étape suivante:
gcloud deploy releases promote RELEASE_NAME \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --annotations=KEY=VALUE,...
où :
RELEASE_NAME
est le nom de la version. Veuillez indiquer une valeur.
PIPELINE_NAME
est le nom du pipeline de livraison qui gère cette version. Cette valeur est obligatoire.
REGION
est la région dans laquelle le pipeline s'exécute. Si vous avez défini la propriété
deploy/region
, vous pouvez omettre cette option.KEY=VALUE,...
est une liste d'une ou de plusieurs paires de chaînes clé-valeur séparées par des virgules, qui peuvent contenir des informations sur vos résultats de test et d'autres informations de test. Exemple :
gcloud deploy releases promote --annotations="from_target=test,status=stable"
Les annotations sur le déploiement sont immuables. Par conséquent, si vous ajoutez une annotation d'état, vous ne pourrez pas mettre à jour cet état par la suite sur le même déploiement.
Utiliser des annotations pour donner accès aux résultats des tests
Si l'URL pointe vers l'emplacement des résultats de test, vous pouvez fournir cette URL en tant qu'annotation lors d'un déploiement, à l'aide de l'option --annotations
.
Exemple :
gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"
Pour en savoir plus, consultez Utiliser des libellés et des annotations avec Google Cloud Deploy.
Intégration à la gestion des workflows tiers
Google Cloud Deploy publie des messages opérationnels dans Pub/Sub. Votre outil de gestion des workflows peut s'abonner à ces sujets Pub/Sub et les utiliser pour déclencher des workflows spécifiques.
Pour approbation
Le sujet clouddeploy-approvals
informe votre système lorsqu'une approbation est requise pour un déploiement. Votre système de workflow externe peut alors faire appel à sa magie pour obtenir l'approbation, puis appelle gcloud deploy rollouts approve
.
Le compte qui émet la commande rollouts approve
doit disposer du rôle IAM prédéfini roles/clouddeploy.approver
.
Pour configurer un workflow d'approbation externe:
Exigez une approbation sur la cible.
Dans la définition de cette cible, incluez
requireApproval: true
.Pour consulter les messages, abonnez-vous au sujet
clouddeploy-approvals
Pub/Sub et configurez votre système de gestion de workflows.Lorsque votre système de gestion de workflows reçoit un message du sujet
clouddeploy-approvals
qui inclut"Action": "Required"
, il lance un workflow d'approbation configuré selon les exigences de votre organisation.Le message inclut également une référence au déploiement à approuver, au format suivant:
Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
Le résultat du workflow d'approbation est une approbation ou un refus du déploiement.
Votre système de gestion des workflows renvoie l'approbation ou le refus à Google Cloud Deploy sous la forme de la commande suivante:
La commande pour approbation est la suivante:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
Pour refuser le déploiement, procédez comme suit:
gcloud deploy rollouts reject ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
où :
ROLLOUT
est le nom du déploiement pour lequel une approbation a été demandée.
PIPELINE_NAME
est le pipeline de livraison qui gère le déploiement de votre application.
RELEASE_NAME
est le nom de la version à laquelle ce déploiement est associé.
REGION
correspond à la région dans laquelle le pipeline de livraison est exécuté.
Exemple :
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1