Promouvoir votre version et gérer les approbations

Cette page explique comment promouvoir une version Cloud Deploy existante vers la cible suivante dans la progression d'un pipeline de diffusion.

Avant de commencer

Cette page suppose que vous avez déjà créé une version.

Promouvoir la version

Lorsque votre version est déployée dans une cible définie dans votre pipeline de diffusion, vous pouvez la promouvoir dans la cible suivante:

gcloud

gcloud deploy releases promote --release=RELEASE_NAME \
                               --delivery-pipeline=PIPELINE_NAME \
                               --region=REGION

Où :

RELEASE_NAME est le nom de la version que vous promouvez.

PIPELINE_NAME est le nom du pipeline de diffusion que vous utilisez pour gérer le déploiement de cette version.

REGION est le nom de la région dans laquelle la version a été créée, par exemple us-central1. Ce champ est obligatoire.

Pour en savoir plus sur la commande gcloud deploy releases promote, consultez la documentation de référence de Google Cloud SDK.

Console

  1. Ouvrez la page des pipelines de diffusion.

  2. Cliquez sur votre pipeline dans la liste des pipelines de diffusion.

    La page "Détails du pipeline de diffusion" affiche une représentation graphique de la progression de votre pipeline de diffusion.

    Visualisation du pipeline de diffusion dans la console Google Cloud

  3. Sur la première cible de la visualisation du pipeline de diffusion, cliquez sur Promouvoir.

    La boîte de dialogue Promouvoir la version s'affiche. Il affiche les détails de la cible que vous promouvez.

  4. Cliquez sur Promouvoir.

Si le pipeline de diffusion ou la cible a changé depuis la création de la version, Google Cloud Deploy renvoie un message indiquant une incompatibilité possible et vous invite à confirmer la promotion. Vous pouvez répondre n à l'invite et examiner les différences entre les versions du pipeline avant de continuer. Si vous choisissez de promouvoir la version, elle est déployée conformément au pipeline de diffusion tel qu'il a été défini lors de sa création. Pour en savoir plus sur les différences entre les pipelines, consultez la section Instances de pipeline par version.

Cloud Deploy crée un rollout pour la version dans la cible de destination, et la version est mise en file d'attente pour le déploiement. Lors du déploiement, la visualisation du pipeline de livraison le prouve:

Visualisation du pipeline de diffusion dans la console Google Cloud

Gérer les approbations d'un pipeline de livraison

Vous pouvez exiger une approbation pour n'importe quelle cible, et vous pouvez approuver ou refuser les versions dans cette cible.

Les approbations peuvent être gérées de manière programmatique en intégrant votre système de gestion de workflow (tel que ServiceNow) ou un autre système à Cloud Deploy à l'aide de Pub/Sub et de l'API Cloud Deploy.

Approbation requise

Pour exiger une approbation pour n'importe quelle cible, définissez requireApproval sur true dans la configuration de la cible:

     apiVersion: deploy.cloud.google.com/v1
     kind: Target
     metadata:
      name:
     description:
     requireApproval: true

Pour en savoir plus, consultez la section Configuration du pipeline de diffusion.

Lorsqu'un déploiement est en attente d'approbation, les utilisateurs ou les systèmes qui s'abonnent au sujet Pub/Sub clouddeploy-approvals reçoivent une notification et peuvent ensuite approuver ou refuser le déploiement.

Lorsque vous utilisez le déploiement parallèle, vous pouvez configurer la multicible pour qu'elle nécessite une approbation. Si la promotion vers la cible est refusée, le déploiement du contrôleur échoue, avec un état APPROVAL_REJECTED, et les déploiements enfants ne sont pas créés.

Approuver ou refuser un déploiement

Chaque cible peut exiger une approbation avant le déploiement d'une version vers elle. Lorsque vous effectuez une promotion vers une cible nécessitant une approbation, Cloud Deploy publie un message Pub/Sub dans le sujet clouddeploy-approvals.

Tout utilisateur ou compte de service disposant du rôle roles/clouddeploy.approver peut approuver le déploiement de Cloud Deploy sur une cible nécessitant une approbation.

Votre système de gestion de workflow intégré, ayant reçu une notification nécessitant une approbation à l'aide de notifications de service, peut approuver ou refuser le déploiement à l'aide de l'API Cloud Deploy.

Approuver ou refuser manuellement

Console

  1. Dans la console Google Cloud, accédez à la page Pipelines de diffusion de Cloud Deploy pour afficher la liste de vos pipelines de diffusion disponibles.

    Ouvrir la page Pipelines de diffusion

    La liste des pipelines de diffusion s'affiche dans la console Google Cloud. Les pipelines de diffusion configurés, mais non enregistrés auprès du service Cloud Deploy ne sont pas affichés.

  2. Cliquez sur le nom du pipeline de diffusion.

    La visualisation du pipeline s'affiche. Si l'approbation est en attente et que vous disposez du rôle roles/clouddeploy.approver ou d'autorisations équivalentes, la visualisation inclut un lien Examiner.

    Visualisation du pipeline de diffusion, avec approbation en attente

  3. Cliquez sur Vérifier.

    Une liste des déploiements en attente d'approbation s'affiche.

    Déploiements pour ce pipeline, avec approbation en attente

  4. Cliquez sur Vérifier.

    L'écran "Approuver le déploiement" s'affiche.

    Détails du déploiement avec approbation en attente

    L'onglet Manifest diff (Diff fichier manifeste) affiche les modifications apportées au fichier manifeste affiché depuis la version actuellement déployée (le cas échéant) vers celle que vous approuvez (ou refusez).

  5. Cliquez sur Approuver ou sur Refuser.

    Si vous acceptez, votre application est déployée dans la cible. Si vous refusez, l'application n'est pas déployée et ne peut pas être approuvée ultérieurement, sauf si elle est de nouveau promue.

gcloud

Un utilisateur disposant du rôle roles/clouddeploy.approver peut approuver ou refuser manuellement un déploiement. Pour approuver:

gcloud deploy rollouts approve rollout-name --delivery-pipeline=pipeline-name \
                                                                   --region=region \
                                                                   --release=release-name

Pour refuser :

gcloud deploy rollouts reject rollout-name --delivery-pipeline=pipeline-name \
                                                                  --region=region \
                                                                  --release=release-name