このページでは、Google Cloud Deploy がアプリケーションをデプロイする場所と方法を記述するデリバリー パイプラインとターゲットを作成する方法について説明します。デリバリー パイプラインとターゲットの YAML ファイル構造の説明については、構成ファイルのスキーマをご覧ください。
デリバリー パイプラインとターゲットについて
デリバリー パイプラインでは、デプロイ ターゲットの進行が記述されます。これらのターゲットは、デリバリー パイプラインと同じファイル、または 1 つ以上の別のファイルで定義できます。
デリバリー パイプラインとターゲット定義ファイルを作成したら、これらのファイルに対して gcloud deploy apply
を実行して、ファイルを Google Cloud Deploy リソースとして登録します。
デリバリー パイプラインとターゲットを定義する
デリバリー パイプラインとターゲット構成ファイルの構造については、こちらをご覧ください。
このファイルの名前は任意です。一般に、ターゲット定義を含むデリバリー パイプライン構成は clouddeploy.yaml
と呼ばれ、代わりに 1 つ以上の別のファイルで定義されたターゲットを参照するものは delivery-pipeline.yaml
と呼ばれます。
ターゲットとして、GKE クラスタまたは Anthos クラスタを指し示すことができます。
デリバリー パイプラインとターゲットを登録する
デリバリー パイプラインを Google 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 プロバイダを使用して、デリバリー パイプラインとターゲット リソースを作成することもできます。
既存のパイプラインとターゲットを編集する
後で任意のデリバリー パイプラインまたはターゲット構成を編集し、gcloud
deploy apply
を実行してパイプラインまたはターゲット リソースを更新できます。ただし、これらの変更は元のデリバリー パイプラインによって管理されるため、既存のリリースには影響しません。
デプロイに手動の承認を要求する
特定のターゲットに対して手動での承認を要求するには、次のプロパティをターゲット定義に含めます。
requireApproval: true
デフォルトは false
です。デリバリー パイプライン構成でこのプロパティを省略した場合、または値を指定しなかった場合、このターゲットへのデプロイに承認は必要ありません。(ただし、ターゲットに昇格しようとする呼び出し元には、引き続き clouddeploy.rollouts.create
IAM 権限が必要です)。
最初のターゲットに対する手動での承認を要求することもできます。CLI を使用して最初のターゲットに対してリリースを作成すると、rollout
が自動的に作成されます。承認が必要な場合、Google Cloud Deploy は rollout
を作成しますが、承認が付与されるまでリリースが保留状態となります。
次のステップ
デリバリー パイプラインを呼び出してリリースを作成する方法については、アプリケーションのデプロイをご覧ください。