Gérer les versions des outils

Cloud Deploy effectue ses opérations à l'aide d'une image personnalisée, qui inclut les versions par défaut des outils. Cloud Deploy vous offre flexibilité et contrôle sur votre processus de déploiement en vous permettant de spécifier les versions des outils à utiliser dans les opérations pour afficher, déployer et vérifier vos manifestes.

Cette page décrit comment les versions des outils Cloud Deploy sont sélectionnées, ainsi que la durée de maintenance et d'assistance pour chaque version d'outil.

Versions d'outils Cloud Deploy compatibles

Cloud Deploy vous permet de sélectionner les versions des outils suivants :

Cloud Deploy fournit un dépôt des versions d'outils disponibles que vous pouvez utiliser pour vos opérations. Toutes ces versions sont soumises au règlement de maintenance et d'obsolescence.

Versions d'outils par défaut

Si aucune version d'outil spécifiée par l'utilisateur n'est fournie, les versions d'outils par défaut sont utilisées lors de la création de la version.

Une nouvelle image Cloud Deploy est publiée chaque semaine et contient les dernières versions d'outils disponibles au moment de la création de l'image. En fonction du calendrier de publication des différents outils, une nouvelle version d'outil peut mettre jusqu'à deux semaines pour devenir la version par défaut.

Vous pouvez afficher les versions par défaut en exécutant la commande suivante :

gcloud deploy get-config \
      --project=PROJECT \
      --region=REGION \
      --format 'yaml(defaultToolVersions)'

Versionnement fixe des outils

Par défaut, toutes les versions d'outils sont enregistrées dans la ressource de version. Les versions d'outils sont associées à une version lors de sa création et sont utilisées pendant tout son cycle de vie. Elles ne peuvent pas être modifiées pendant cette période. Le cycle de vie d'une version comprend tous les jobs d'affichage, de déploiement et autres de cette version. Cela inclut le déploiement dans la cible finale de la progression et au-delà (restaurations ou redéploiements). Vous pouvez trouver les versions d'outils associées à une version en exécutant la commande suivante :

gcloud deploy releases describe RELEASE_NAME \
       --delivery-pipeline=PIPELINE_NAME \
       --project=PROJECT \
       --region=REGION \
       --format='yaml(toolVersions)'

Les versions créées avant la fonctionnalité de versionnement des outils n'affichent pas de toolVersions dans leur sortie. Vous pouvez voir leur version Skaffold à l'aide de l'option --format 'yaml(skaffoldVersion)'.

Désactiver le versionnement fixe des outils

Si vous souhaitez désactiver le versionnement fixe des outils et utiliser les derniers outils pour une version donnée, vous pouvez le faire en spécifiant le mot clé spécial latest pour chaque outil. Voici un exemple de création d'une version qui utilise les dernières versions de tous les outils :

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

Spécifier une version d'outil particulière à utiliser

Vous pouvez utiliser n'importe quelle version d'outil compatible. Pour spécifier la version que vous souhaitez utiliser, incluez l'option appropriée pour l'outil spécifique :

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

Pour tous les outils pour lesquels vous souhaitez utiliser la version par défaut, vous pouvez omettre l'option de version correspondante.

Par exemple, la commande suivante utilise Skaffold 2.16.1 et 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

Compatibilité des versions d'outils

Cloud Deploy est responsable de la compatibilité des versions d'outils sur l'image Cloud Deploy. Si vous utilisez la fonctionnalité de remplacement de version d'outil pour remplacer les versions d'outils sur l'image Cloud Deploy, vous êtes responsable du choix des versions d'outils compatibles.

Règlement de maintenance et d'obsolescence des versions d'outils

Les versions d'outils sont compatibles pendant 12 mois avec une période de maintenance de 60 jours à compter de leur importation. Cette période de maintenance signifie que les versions liées à une version d'outil sont toujours compatibles pendant 60 jours après l'expiration de la compatibilité avec cette version d'outil. Vous pouvez toujours créer des déploiements progressifs à partir de ces versions, mais vous ne pouvez pas créer de versions à l'aide d'une version d'outil en période de maintenance.

Après la période de maintenance de 60 jours, la version d'outil n'est plus compatible avec aucune opération. Vous ne pouvez plus créer de déploiements progressifs à partir d'une version qui utilise la version non compatible. Toutes les données associées à la version sont toutefois conservées.

Vous pouvez afficher les dates de maintenance et d'expiration de la version en exécutant la commande suivante :

gcloud deploy releases describe RELEASE_NAME \
       --delivery-pipeline=PIPELINE_NAME \
       --project=PROJECT \
       --region=REGION \
       --format 'yaml(condition)'

Vous pouvez également afficher la date de maintenance et d'expiration d'un outil spécifique en exécutant la commande suivante :

gcloud artifacts versions list \
       --package TOOL_NAME \
       --repository tools \
       --project cd-image-prod \
       --location=REGION

Les dates de maintenance et d'expiration sont disponibles sous forme d'annotations sur les versions respectives.

Ancienne version de Skaffold

Cloud Deploy fournissait auparavant une liste spécifique de versions Skaffold compatibles. Ces versions Skaffold correspondaient à une image Cloud Deploy créée avec cette version particulière de Skaffold et d'autres outils. Les versions Skaffold étaient compatibles pendant 12 mois, avec une période de maintenance de 60 jours.

Cloud Deploy abandonne ce modèle afin d'améliorer sa posture de sécurité. Sans avoir à fournir d'images correspondant à une version Skaffold particulière, Cloud Deploy peut résoudre les failles plus rapidement et mettre à jour les versions d'outils par défaut plus fréquemment.

Les versions Skaffold existantes continueront d'être compatibles jusqu'à la date d'expiration.

Version de Skaffold À compter du Début de la maintenance Expiration
2.16 (notes de version) 12 mai 2025 14 mai 2026 13 juillet 2026
2.14 (notes de version) 17 février 2025 25 février 2026 26 avril 2026

Vous pouvez continuer à créer des versions qui utilisent ces versions Skaffold spécifiques à l'aide de l'option --skaffold-version dans la commande suivante :

gcloud deploy releases create RELEASE_NAME \
      --delivery-pipeline=PIPELINE_NAME \
      --skaffold-version=SKAFFOLD_VERSION \
      --project=PROJECT \
      --region=REGION