Cloud Deploy は、デフォルトのツール バージョンを含むカスタム イメージを使用してオペレーションを実行します。Cloud Deploy では、マニフェストのレンダリング、デプロイ、検証を行うオペレーションで使用するツール バージョンを指定できるため、デプロイ プロセスを柔軟に制御できます。
このページでは、Cloud Deploy ツール バージョンが選択される方法と、各ツール バージョンのメンテナンスとサポート期間について説明します。
サポートされている Cloud Deploy ツール バージョン
Cloud Deploy では、次のツールのバージョンを選択できます。
Cloud Deploy には、オペレーションで使用できるツール バージョンのリポジトリ が用意されています。これらの バージョンはすべて、メンテナンスと非推奨のポリシーの対象となります。
デフォルトのツール バージョン
ユーザー指定のツール バージョンが指定されていない場合は、リリースの作成時にデフォルトのツール バージョンが使用されます。
新しい Cloud Deploy イメージは毎週リリースされ、イメージのビルド時に利用可能な最新のツール バージョンが含まれています。ツールのリリース スケジュールが異なるため、新しいツール バージョンがデフォルトになるまでに最大 2 週間かかることがあります。
デフォルトのバージョンを表示するには、次のコマンドを実行します。
gcloud deploy get-config \
--project=PROJECT \
--region=REGION \
--format 'yaml(defaultToolVersions)'
固定ツール バージョニング
デフォルトでは、すべてのツール バージョンがリリース リソースに保存されます。ツール バージョンはリリースの作成時にリリースに関連付けられ、そのリリースのライフサイクル全体で使用されます。その期間中は変更できません。 リリースのライフサイクルは、そのリリースに対するすべてのレンダリング ジョブ、デプロイ ジョブ、その他のジョブで構成されます。これには、進行中や最終的なターゲットへのデプロイ(ロールバックまたは再デプロイ)までが含まれます。 リリースに関連付けられたツール バージョンを確認するには、次のコマンドを実行します。
gcloud deploy releases describe RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--project=PROJECT \
--region=REGION \
--format='yaml(toolVersions)'
ツール バージョニング機能より前に作成されたリリースでは、出力に toolVersions は表示されません。代わりに、Skaffold バージョンを
--format 'yaml(skaffoldVersion)' フラグで確認できます。
固定ツール バージョニングを無効にする
固定ツール バージョニングを無効にして、特定のリリースの最新ツールを使用する場合は、各ツールに特別なキーワード latest を指定します。すべてのツールで最新バージョンを使用するリリースを作成する例を次に示します。
gcloud deploy releases create RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--project=PROJECT \
--region=REGION \
--docker-version=latest \
--helm-version=latest \
--kpt-version=latest \
--kubectl-version=latest \
--kustomize-version=latest \
--skaffold-version=latest
使用する特定のツール バージョンを指定する方法
サポートされているツール バージョンを使用できます。使用するバージョンを指定するには、特定のツールに適切なフラグを含めます。
gcloud deploy releases create RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--project=PROJECT \
--region=REGION \
--docker-version=DOCKER_VERSION \
--helm-version=HELM_VERSION \
--kpt-version=KPT_VERSION \
--kubectl-version=KUBECTL_VERSION \
--kustomize-version=KUSTOMIZE_VERSION \
--skaffold-version=SKAFFOLD_VERSION
デフォルト バージョンを使用するツールについては、対応するバージョン フラグを省略できます。
たとえば、次のコマンドでは Skaffold 2.16.1 と Helm 3.18.3 を使用します。
gcloud deploy releases create release-001 \
--delivery-pipeline=PIPELINE_NAME \
--skaffold-version=2.16.1 \
--helm-version=3.18.3 \
--project=PROJECT \
--region=REGION
ツール バージョンの互換性
Cloud Deploy は、ツール バージョンが Cloud Deploy イメージで互換性があることを保証します。ツール バージョン置換機能を使用して Cloud Deploy イメージのツール バージョンを置き換える場合は、互換性のあるツール バージョンを選択する必要があります。
ツール バージョンの非推奨とメンテナンス ポリシー
ツール バージョンは、インポート日から 12 か月間サポートされ、60 日間のメンテナンス期間が適用されます。このメンテナンス期間は、ツール バージョンに関連付けられたリリースが、そのツール バージョンのサポート終了後 60 日間引き続きサポートされることを意味しています。これらのリリースからロールアウトを作成することはできますが、メンテナンス期間中のツール バージョンを使用してリリースを作成することはできません。
60 日間のメンテナンス期間が終了すると、ツール バージョンはどのオペレーションでもサポートされなくなります。サポートされていないバージョンを使用するリリースからロールアウトを作成することはできません。ただし、リリースに関連付けられたデータはすべてそのまま残ります。
リリースでメンテナンス日と有効期限を表示するには、次のコマンドを実行します。
gcloud deploy releases describe RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--project=PROJECT \
--region=REGION \
--format 'yaml(condition)'
特定のツールのメンテナンス日と有効期限を表示するには、次のコマンドを実行します。
gcloud artifacts versions list \
--package TOOL_NAME \
--repository tools \
--project cd-image-prod \
--location=REGION
メンテナンス日と有効期限は、それぞれのバージョンのアノテーションとして使用できます。