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 が表示されません。代わりに、--format 'yaml(skaffoldVersion)' フラグを使用して Skaffold のバージョンを確認できます。
固定ツール バージョニングを無効にする
固定ツール バージョン管理を無効にして、特定のリリースで最新のツールを使用する場合は、各ツールに特別なキーワード 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
メンテナンス日と有効期限は、それぞれのバージョンのアノテーションとして確認できます。
以前の Skaffold バージョン
以前の Cloud Deploy では、サポートされている Skaffold バージョンの特定のリストが提供されていました。これらの Skaffold バージョンは、その特定のバージョンの Skaffold やその他のツールでビルドされた Cloud Deploy イメージに対応していました。Skaffold バージョンは 12 か月間サポートされ、60 日間のメンテナンス期間が適用されます。
Cloud Deploy は、Cloud Deploy のセキュリティ体制を改善するために、このモデルから移行しています。特定の Skaffold バージョンに対応するイメージを提供する必要がないため、Cloud Deploy は脆弱性に迅速に対応し、デフォルトのツール バージョンをより頻繁に更新できます。
既存の Skaffold バージョンは、有効期限まで引き続きサポートされます。
| Skaffold バージョン | 日付指定 | メンテナンス開始 | 有効期限 |
|---|---|---|---|
| 2.16(リリースノート) | 2025 年 5 月 12 日 | 2026 年 5 月 14 日 | 2026 年 7 月 13 日 |
| 2.14(リリースノート) | 2025 年 2 月 17 日 | 2026 年 2 月 25 日 | 2026 年 4 月 26 日 |
次のコマンドで --skaffold-version フラグを使用すると、これらの特定の Skaffold バージョンを使用するリリースを継続して作成できます。
gcloud deploy releases create RELEASE_NAME \
--delivery-pipeline=PIPELINE_NAME \
--skaffold-version=SKAFFOLD_VERSION \
--project=PROJECT \
--region=REGION