デリバリー パイプラインとターゲットの作成

このページでは、Cloud Deploy がアプリケーションをデプロイする場所と方法を記述するデリバリー パイプラインとターゲットを作成する方法について説明します。デリバリー パイプラインとターゲットの YAML ファイル構造の説明については、構成ファイルのスキーマをご覧ください。

デリバリー パイプラインとターゲットについて

デリバリー パイプラインでは、デプロイ ターゲット進行が記述されます。これらのターゲットは、デリバリー パイプラインと同じファイル、または 1 つ以上の別のファイルで定義できます。

デリバリー パイプラインとターゲット定義ファイルを作成したら、これらのファイルに対して gcloud deploy apply を実行して、ファイルを Cloud Deploy リソースとして登録します。

デリバリー パイプラインとターゲットを定義する

デリバリー パイプラインとターゲット構成ファイルの構造については、こちらをご覧ください。

このファイルの名前は任意です。一般に、ターゲット定義を含むデリバリー パイプライン構成は clouddeploy.yaml と呼ばれ、代わりに 1 つ以上の別のファイルで定義されたターゲットを参照するものは delivery-pipeline.yaml と呼ばれます。

ターゲットとして、GKEGKE Enterprise、または Cloud Run を指し示すことができます。デリバリー パイプライン内では、すべてのターゲットが同じランタイム タイプ(たとえば、すべて GKE またはすべて GKE Enterprise)を参照する必要があります。

Google Cloud コンソールを使用してデリバリー パイプラインとターゲットを作成する

Google Cloud コンソールを使用して、新しいデリバリー パイプラインとターゲットを作成できます。これは Cloud Deploy を試すには便利ですが、本番環境ワークロードには適していません(Google Cloud コンソールを使用してリリースを作成することもできます)。

デリバリー パイプラインを作成するには:

  1. [デリバリー パイプライン] ページで、[作成] をクリックします。

  2. 名前を指定します(またはデフォルトのままにします)。必要に応じて説明も入力します。

  3. 地域を選択します。

  4. ランタイム環境を選択します。

    GKE の場合は、[Google Kubernetes Engine] を選択します。または、デプロイ先のランタイムである場合は [Cloud Run] を選択します。

  5. [新しいターゲット] で名前を入力します(またはデフォルトのままにします)。

  6. このターゲットに対して承認を必須にする場合は、[ロールアウトの承認を必須にする] チェックボックスをオンにします。

  7. このターゲットでカナリア デプロイ戦略を使用する場合は、[カナリアを有効にする] チェックボックスをオンにします。

  8. [完了] をクリックします。

  9. [ターゲットを追加] をクリックし、追加して作成するターゲットごとに次の手順を行います。

  10. すべてのターゲットが準備できたら、[作成] をクリックしてデリバリー パイプラインとターゲット リソースを作成します。

デリバリー パイプラインとターゲットを登録する

Google Cloud コンソールを使用してパイプラインとターゲットを作成した場合、この手順を行う必要はありません。

デリバリー パイプラインを Cloud Deploy に登録するには、個別の定義ファイルごとに gcloud deploy apply を 1 回実行します。つまり、3 つのファイルで 3 つのターゲットを定義する場合は、コマンドを 4 回(デリバリー パイプラインに対して 1 回、各ターゲットに対して 1 回ずつ)実行します。

次のコマンドは、同じファイルで定義されているターゲットとともにデリバリー パイプラインを登録します。

gcloud deploy apply --file=PIPELINE_CONFIG \
                    --region=LOCATION \
                    --project=PROJECT

これで、リリースのデプロイを管理できるデリバリー パイプラインと、同じプロジェクトとリージョン内のデリバリー パイプラインで使用できるターゲット リソースが作成されました。

単一ファイルの例

この例のコマンドは、すべて同じファイルで定義されているデリバリー パイプラインとターゲットを登録します。

gcloud deploy apply --file=clouddeploy.yaml --region=us-central1

個別のファイルを使用する例

この例では、3 つのターゲットが 3 つの個別のファイルで定義されているため、次の 4 つのコマンドを実行します。

gcloud deploy apply --file=delivery-pipeline.yaml --region=us-central1 && \
gcloud deploy apply --file=target_dev.yaml --region=us-central1 && \
gcloud deploy apply --file=target_staging.yaml --region=us-central1 && \
gcloud deploy apply --file=target_prod.yaml --region=us-central1

デフォルト(gcloud config set deploy/region [REGION] を使用して)が設定されていない場合、--region フラグを使用する必要があります。リージョンは、デリバリー パイプラインと、パイプラインが参照するすべてのターゲットで同じにする必要があります。

Terraform を使用してデリバリー パイプラインとターゲットを作成する

Google Cloud Terraform プロバイダを使用して、デリバリー パイプラインターゲット リソースを作成することもできます。

Google Cloud ベータ版 Terraform プロバイダには、プレビューでの Cloud Deploy 機能のサポートが含まれている場合があります。

既存のパイプラインとターゲットを編集する

後でデリバリー パイプラインまたはターゲットの構成を編集し、gcloud deploy apply を実行してパイプラインまたはターゲットのリソースを更新できます。ただし、既存のリリースは元のデリバリー パイプラインによって管理されるため、これらの変更は既存のリリースには影響しません

デプロイに手動の承認を要求する

特定のターゲットに対して手動での承認を要求するには、次のプロパティをターゲット定義に含めます。

requireApproval: true

デフォルトは false です。デリバリー パイプライン構成でこのプロパティを省略した場合、または値を指定しなかった場合、このターゲットへのデプロイに承認は必要ありません。(ただし、ターゲットにプロモートしようとしている呼び出し元には、引き続き clouddeploy.rollouts.create IAM 権限が必要です。)

最初のターゲットに対する手動での承認を要求することもできます。CLI を使用して最初のターゲットに対してリリースを作成すると、rollout が自動的に作成されます。承認が必要な場合、Cloud Deploy は rollout を作成しますが、承認が付与されるまでリリースが保留状態となります。

次のステップ