このページでは、Cloud Deploy がアプリケーションをデプロイする場所と方法を記述するデリバリー パイプラインとターゲットを作成する方法について説明します。デリバリー パイプラインとターゲットの YAML ファイル構造の説明については、構成ファイルのスキーマをご覧ください。
デリバリー パイプラインとターゲットについて
デリバリー パイプラインでは、デプロイ ターゲットの進行が記述されます。これらのターゲットは、デリバリー パイプラインと同じファイル、または 1 つ以上の別のファイルで定義できます。
デリバリー パイプラインとターゲット定義ファイルを作成したら、これらのファイルに対して gcloud deploy apply を実行して、ファイルを Cloud Deploy リソースとして登録します。
デリバリー パイプラインとターゲットを定義する
デリバリー パイプラインとターゲット構成ファイルの構造については、こちらをご覧ください。
このファイルの名前は任意です。一般に、ターゲット定義を含むデリバリー パイプライン構成は clouddeploy.yaml と呼ばれ、代わりに 1 つ以上の別のファイルで定義されたターゲットを参照するものは delivery-pipeline.yaml と呼ばれます。
ターゲットとして、 GKE、 GKE Attached Clusters、 Cloud Run、または カスタム ターゲットを指し示すことができます。デリバリー パイプライン内では、すべてのターゲットが同じランタイム タイプ(たとえば、すべて GKE またはすべて Cloud Run)を参照する必要があります。
コンソールを使用してデリバリー パイプラインとターゲットを作成する 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 を作成しますが、承認が付与されるまでリリースが保留状態となります。
次のステップ
デリバリー パイプラインを呼び出してリリースを作成する方法については、アプリケーションのデプロイをご覧ください。