このページでは、Cloud Deploy がアプリケーションをデプロイする場所と方法を記述するデリバリー パイプラインとターゲットを作成する方法について説明します。デリバリー パイプラインとターゲットの YAML ファイル構造の説明については、構成ファイルのスキーマをご覧ください。
デリバリー パイプラインとターゲットについて
デリバリー パイプラインでは、デプロイ ターゲットの進行が記述されます。これらのターゲットは、デリバリー パイプラインと同じファイル、または 1 つ以上の別のファイルで定義できます。
デリバリー パイプラインとターゲット定義ファイルを作成したら、これらのファイルに対して gcloud deploy apply
を実行して、ファイルを Cloud Deploy リソースとして登録します。
デリバリー パイプラインとターゲットを定義する
デリバリー パイプラインとターゲット構成ファイルの構造については、こちらをご覧ください。
このファイルの名前は任意です。一般に、ターゲット定義を含むデリバリー パイプライン構成は clouddeploy.yaml
と呼ばれ、代わりに 1 つ以上の別のファイルで定義されたターゲットを参照するものは delivery-pipeline.yaml
と呼ばれます。
ターゲットとして、GKE、GKE Enterprise、または Cloud Run を指し示すことができます。デリバリー パイプライン内では、すべてのターゲットが同じランタイム タイプ(たとえば、すべて GKE またはすべて GKE Enterprise)を参照する必要があります。
Google Cloud コンソールを使用してデリバリー パイプラインとターゲットを作成する
Google Cloud コンソールを使用して、新しいデリバリー パイプラインとターゲットを作成できます。これは Cloud Deploy を試すには便利ですが、本番環境ワークロードには適していません(Google Cloud コンソールを使用してリリースを作成することもできます)。
デリバリー パイプラインを作成するには:
[デリバリー パイプライン] ページで、[作成] をクリックします。
名前を指定します(またはデフォルトのままにします)。必要に応じて説明も入力します。
地域を選択します。
ランタイム環境を選択します。
GKE の場合は、[Google Kubernetes Engine] を選択します。または、デプロイ先のランタイムである場合は [Cloud Run] を選択します。
[新しいターゲット] で名前を入力します(またはデフォルトのままにします)。
このターゲットに対して承認を必須にする場合は、[ロールアウトの承認を必須にする] チェックボックスをオンにします。
このターゲットでカナリア デプロイ戦略を使用する場合は、[カナリアを有効にする] チェックボックスをオンにします。
[完了] をクリックします。
[ターゲットを追加] をクリックし、追加して作成するターゲットごとに次の手順を行います。
すべてのターゲットが準備できたら、[作成] をクリックしてデリバリー パイプラインとターゲット リソースを作成します。
デリバリー パイプラインとターゲットを登録する
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
を作成しますが、承認が付与されるまでリリースが保留状態となります。
次のステップ
デリバリー パイプラインを呼び出してリリースを作成する方法については、アプリケーションのデプロイをご覧ください。