ツール バージョンを管理する

Cloud Deploy は、デフォルトのツール バージョンを含むカスタム イメージを使用してオペレーションを実行します。Cloud Deploy では、オペレーションで使用するツール バージョンを指定して、マニフェストのレンダリング、デプロイ、検証を行うことができるため、デプロイ プロセスを柔軟に制御できます。

このページでは、Cloud Deploy ツール バージョンの選択方法と、各ツール バージョンのメンテナンスとサポートの期間について説明します。

サポートされている Cloud Deploy ツールのバージョン

Cloud Deploy では、次のツールのバージョンを選択できます。

Cloud Deploy には、オペレーションに使用できる利用可能なツール バージョンのリポジトリが用意されています。これらのバージョンはすべて、メンテナンスと非推奨のポリシーの対象となります。

修正済みのツールのバージョニング

デフォルトでは、すべてのツール バージョンがリリース リソースに保存されます。ツール バージョンは、リリースの作成時にリリースに関連付けられ、そのリリースのライフサイクル全体で使用されます。その期間中は変更できません。リリースのライフサイクルは、そのリリースに関するすべてのレンダリング、デプロイ、その他のジョブで構成されます。これには、進行中や最終的なターゲットへのデプロイ(ロールバックまたは再デプロイ)までが含まれます。リリースに関連付けられているツール バージョンを確認するには、次のコマンドを実行します。

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

メンテナンス日と有効期限は、それぞれのバージョンのアノテーションとして確認できます。