リリースを昇格し、承認を管理する

このページでは、既存の Cloud Deploy リリースをデリバリー パイプラインの進行中の次のターゲットに昇格する方法について説明します。

始める前に

このページは、すでにリリースを作成していることを前提としています。

リリースを昇格する

リリースがデリバリー パイプラインで定義されたターゲットにデプロイされると、次のターゲットに昇格できます。

gcloud

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

ここで

RELEASE_NAME は、昇格させるリリースの名前です。

PIPELINE_NAME は、このリリースのデプロイを管理するために使用するデリバリー パイプラインの名前です。

REGION は、リリースが作成されたリージョンの名前です(例: us-central1)。必須入力項目です。

gcloud deploy releases promote コマンドの詳細については、Google Cloud SDK リファレンスをご覧ください。

コンソール

  1. [デリバリー パイプライン] ページを開く

  2. デリバリー パイプラインのリストに表示されているパイプラインをクリックします。

    デリバリー パイプラインの詳細ページには、デリバリー パイプラインの進行状況がグラフィカルに表示されます。

    Google Cloud コンソールでのデリバリー パイプラインの可視化

  3. デリバリー パイプラインの可視化の最初のターゲットで、[Promote] をクリックします。

    [リリースの昇格] ダイアログが表示されます。昇格先のターゲットの詳細が表示されます。

  4. [Promote] をクリックします。

リリースの作成後にデリバリー パイプラインまたはターゲットが変更された場合、Cloud Deploy は不一致の可能性を示すメッセージを返し、昇格を確認するプロンプトを表示します。続行する前に、プロンプトに n と応答して、パイプラインのバージョンの違いを確認できます。いずれにしても、リリースが作成された時点で定義されていたリリース パイプラインに従ってリリースがデプロイされます。パイプラインの不一致の詳細については、リリースあたりのパイプライン インスタンス数をご覧ください。

Cloud Deploy は、リリースのターゲットとして rollout を作成し、デプロイのためにリリースをキューに入れます。デプロイされると、デリバリー パイプラインの可視化によりその事実が示されます。

Google Cloud コンソールでのデリバリー パイプラインの可視化

デリバリー パイプラインの承認を管理する

任意のターゲットの承認を要求でき、そのターゲットへのリリースを承認または拒否できます。

Pub/Sub と Cloud Deploy API を使用してワークフロー管理システム(ServiceNow など)や他のシステムを Cloud Deploy と統合することで、承認をプログラムで管理できるようになります。

承認を要求する

ターゲットでの承認を要求するには、ターゲット構成で requireApprovaltrue に設定します。

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

詳細については、デリバリー パイプラインの構成をご覧ください。

ロールアウトが承認待ちの場合、clouddeploy-approvals Pub/Sub トピックに登録しているユーザーまたはシステムは通知を受信し、ロールアウトを承認または拒否できます。

並行デプロイを使用する場合は、承認が必要になるようにマルチターゲットを構成できます。ターゲットへの昇格が拒否された場合、コントローラのロールアウトは APPROVAL_REJECTED 状態で失敗し、子ロールアウトは作成されません。

ロールアウトを承認または拒否する

各ターゲットは、そのリリースをデプロイする前に承認する必要があります。承認が必要なターゲットに昇格させると、Cloud Deploy は Pub/Sub メッセージを clouddeploy-approvals トピックに公開します。

ロール roles/clouddeploy.approver を持つユーザーまたはサービス アカウントは、承認を要求するターゲットへの Cloud Deploy ロールアウトを承認できます。

サービス通知を使用する承認が必要な通知を受け取った統合ワークフロー管理システムは、Cloud Deploy API を使用してロールアウトを承認または拒否できます。

手動で承認または拒否

コンソール

  1. Google Cloud コンソールで、Cloud Deploy の [デリバリー パイプライン] ページに移動し、使用可能なデリバリー パイプラインのリストを表示します。

    [デリバリー パイプライン] ページを開く

    デリバリー パイプラインのリストが Google Cloud コンソールに表示されます。構成されているものの Cloud Deploy サービスに登録されていないデリバリー パイプラインは表示されません。

  2. デリバリー パイプラインの名前をクリックします。

    パイプラインの可視化が表示されます。承認待ちで、roles/clouddeploy.approver ロールまたは同等の権限がある場合、可視化には [レビュー] リンクが含まれます。

    承認待ちのデリバリー パイプラインの可視化

  3. [Review] をクリックします。

    承認待ちのロールアウトを示すリストが表示されます。

    承認待ちのこのパイプラインのロールアウト

  4. [Review] をクリックします。

    [Approve rollout] 画面が表示されます。

    承認待ちのロールアウトの詳細

    [Manifest diff] タブには、現在デプロイされているバージョン(存在する場合)から現在承認(または拒否)中のバージョンまで、レンダリングされたマニフェストへの変更が表示されます。

  5. [Approve] または [Reject] をクリックします。

    承認すると、アプリケーションがターゲットにデプロイされます。拒否すると、アプリケーションはデプロイされず、後で再昇格されない限り、承認できません。

gcloud

roles/clouddeploy.approver ロールを持つユーザーは、ロールアウトを手動で承認または拒否できます。承認する方法は次のとおりです。

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

拒否する方法は次のとおりです。

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