Intégrer Google Cloud Deploy à d'autres systèmes

Vous pouvez intégrer Google Cloud Deploy à certains des autres systèmes sur lesquels vous utilisez la livraison de 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 figurant sur cette page partent du principe que vous remplissez déjà les conditions suivantes:

Intégration aux tests automatisés

Vous pouvez utiliser Google Cloud Deploy avec Pub/Sub pour intégrer des tests à votre pipeline de diffusion afin de promouvoir automatiquement la version pour une livraison continue.

Vous pouvez également utiliser des annotations sur un déploiement pour fournir un lien permettant de tester les résultats. Pour en savoir plus, consultez la page Utiliser des libellés et des annotations avec Google Cloud Deploy.

Utiliser Pub/Sub pour automatiser la promotion

  1. Écoutez des messages Pub/Sub provenant du sujet clouddeploy-operations.

    Le message contient les attributs suivants:

    • Action: SUCCEEDED
    • ResourceType: Rollout
    • Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
  2. Lorsque vous recevez une notification indiquant que le déploiement a réussi, exécutez vos tests sur votre application déployée.

  3. 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 distribution qui gère cette version. Champ 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 cette option.

    • KEY=VALUE,...

      est une liste d'une ou plusieurs paires clé-valeur séparées par des virgules, qui peuvent contenir des informations sur vos résultats de test et d'autres informations. 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 pouvez pas mettre à jour cet état ultérieurement sur le même déploiement.

Utiliser des annotations pour autoriser l'accès aux résultats des tests

Si l'URL pointe vers l'emplacement permettant d'accéder aux résultats de test, vous pouvez la fournir 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 la page 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 les approbations

Le sujet clouddeploy-approvals notifie votre système lorsqu'une approbation est requise pour un déploiement. Votre système de workflow externe peut ensuite exécuter sa commande magique pour obtenir l'approbation, puis appeler 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, procédez comme suit:

  1. Exigez une approbation sur la cible.

    Dans la définition de cette cible, incluez requireApproval: true.

  2. Pour utiliser les messages, abonnez-vous au sujet Pub/Sub clouddeploy-approvals et configurez votre système de gestion de workflows.

  3. Lorsque votre système de gestion des workflows reçoit un message du sujet clouddeploy-approvals qui inclut "Action": "Required", il lance un workflow d'approbation configuré en fonction des 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 correspond à une approbation ou à un refus du déploiement.

  4. Votre système de gestion des workflows renvoie l'approbation ou le refus à Google Cloud Deploy à l'aide 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 l'approbation a été demandée.

    • PIPELINE_NAME

      est le pipeline de distribution 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 diffusion est exécuté.

Exemple :

gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1