Vous pouvez intégrer Cloud Deploy à certains des autres systèmes que vous pour la livraison de logiciels. Cette page explique comment intégrer Cloud Deploy par les éléments suivants:
- Outils de test
- Gestion des workflows
Consultez la page Intégration à votre système CI pour découvrir comment appeler 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 défini et enregistré au moins un pipeline de diffusion dans Cloud Deploy.
vous avez au moins une cible définie ; et les références de votre pipeline de livraison qui ciblent.
Vous avez configuré des notifications Pub/Sub pour recevoir des notifications des sujets suivants :
clouddeploy-operations
clouddeploy-approvals
Intégration aux tests automatisés
Vous pouvez utiliser Cloud Deploy avec Pub/Sub pour intégrer les tests à votre pipeline de publication. Vous pouvez ainsi promouvoir la version automatiquement pour une livraison continue.
Vous pouvez également utiliser des annotations dans un déploiement pour fournir un lien vers les résultats des tests. Pour en savoir plus, consultez Utiliser des libellés et des annotations avec Cloud Deploy.
Utiliser Pub/Sub pour automatiser la promotion
Écoutez les messages Pub/Sub à partir du sujet
clouddeploy-operations
.Le message contient les attributs suivants :
Action: SUCCEED
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 l'application déployée.
Une fois vos tests réussis, appelez 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 l'album. 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 est exécuté. Si vous avez défini la propriété
deploy/region
, vous pouvez omettre cet indicateur.KEY=VALUE,...
est une liste d'une ou plusieurs paires de chaînes clé-valeur, séparées par une virgule, qui peuvent contenir des informations sur les résultats de vos tests et d'autres informations sur les tests. 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 un état , vous ne pouvez pas mettre à jour cet état ultérieurement lors du même déploiement.
Utiliser des annotations pour accéder aux résultats des tests
Si l'URL renvoie vers les résultats du test, vous pouvez
Fournissez cette URL en tant qu'annotation sur 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 Cloud Deploy.
Intégration à la gestion des workflows tiers
Cloud Deploy publie des messages opérationnels dans Pub/Sub. Votre outil de gestion de workflow peut s'abonner à ces sujets Pub/Sub et les utiliser pour déclencher des workflows spécifiques.
Pour les approbations
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 son travail pour
obtenez l'approbation, puis appelez 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 flux de travail d'approbation externe:
Exigez une approbation sur la cible.
Dans la définition de cette cible, incluez
requireApproval: true
.Pour consommer les messages, abonnez-vous au sujet Pub/Sub
clouddeploy-approvals
et configurez votre système de gestion des workflows.Lorsque votre système de gestion de workflow reçoit un message du
clouddeploy-approvals
sujet incluant"Action": "Required"
, il démarre un processus d'approbation, configuré selon les exigences de votre organisation.Le message inclut également une référence au déploiement à approuver, dans le le 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 flux de travail renvoie l'approbation ou le refus à Cloud Deploy est utilisé sous la forme de la commande suivante:
La commande d'approbation est la suivante:
gcloud deploy rollouts approve ROLLOUT \ --delivery-pipeline=PIPELINE_NAME \ --region=REGION \ --release=RELEASE_NAME
La commande permettant de rejeter le déploiement est la suivante:
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
est la région dans laquelle le pipeline de livraison s'exécute.
Exemple :
gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1