Gerenciar versões de ferramentas

O Cloud Deploy realiza as operações usando uma imagem personalizada, que inclui versões de ferramentas padrão. O Cloud Deploy oferece flexibilidade e controle sobre o processo de implantação, permitindo que você especifique as versões das ferramentas a serem usadas nas operações para renderizar, implantar e verificar seus manifestos.

Esta página descreve como as versões das ferramentas do Cloud Deploy são selecionadas e o tempo de manutenção e suporte para cada versão.

Versões de ferramentas compatíveis do Cloud Deploy

O Cloud Deploy permite selecionar as versões das seguintes ferramentas:

O Cloud Deploy oferece um repositório de versões de ferramentas disponíveis que podem ser usadas nas operações. Todas essas versões estão sujeitas à política de manutenção e suspensão de uso.

Versões de ferramentas padrão

Se nenhuma versão de ferramenta especificada pelo usuário for fornecida, as versões padrão serão usadas durante a criação da versão.

Uma nova imagem do Cloud Deploy é lançada todas as semanas contendo as versões de ferramentas mais recentes disponíveis no momento em que a imagem é criada. Com base no tempo de diferentes programações de lançamento das ferramentas, uma nova versão pode levar até duas semanas para se tornar a padrão.

Para conferir as versões padrão, execute o seguinte comando:

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

Versão fixa da ferramenta

Todas as versões de ferramentas são salvas no recurso de versão por padrão. As versões de ferramentas são associadas a uma versão na criação e usadas durante todo o ciclo de vida dela, e não podem ser alteradas durante esse período. O ciclo de vida da versão consiste em todos os jobs de renderização, implantação e outros nessa versão. Isso inclui a implantação no destino final na progressão e além (reversões ou reimplantamentos). Para encontrar as versões de ferramentas associadas a uma versão, execute o seguinte comando:

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

As versões criadas antes do recurso de controle de versões de ferramentas não terão toolVersions listados na saída. Em vez disso, é possível conferir a versão do Skaffold com a flag --format 'yaml(skaffoldVersion)'.

Desativar o controle de versões fixo da ferramenta

Se você quiser desativar o controle de versões fixo da ferramenta e usar as ferramentas mais recentes para uma determinada versão, especifique a palavra-chave especial latest para cada ferramenta. Confira um exemplo de como criar uma versão que usa as versões mais recentes de todas as ferramentas:

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

Como especificar uma versão de ferramenta específica a ser usada

É possível usar qualquer uma das versões de ferramentas compatíveis. Para especificar a versão que você quer usar, inclua a flag apropriada para a ferramenta específica:

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

Para qualquer ferramenta em que você queira usar a versão padrão, omita a flag de versão correspondente.

Por exemplo, o comando a seguir usa o Skaffold 2.16.1 e o 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

Compatibilidade de versões de ferramentas

O Cloud Deploy é responsável por garantir que as versões das ferramentas sejam compatíveis na imagem do Cloud Deploy. Se você usar o recurso de substituição de versão da ferramenta para substituir as versões na imagem do Cloud Deploy, será responsável por escolher versões de ferramentas compatíveis.

Política de suspensão de uso e manutenção de versões de ferramentas

As versões de ferramentas são compatíveis por 12 meses com um período de manutenção de 60 dias, a partir do dia em que são importadas. Esse período de manutenção significa que as versões vinculadas a uma versão de ferramenta ainda serão compatíveis por 60 dias após a expiração do suporte. Ainda é possível criar lançamentos a partir dessas versões, mas não é possível criar versões usando uma versão de ferramenta que esteja no período de manutenção.

Após o período de manutenção de 60 dias, a versão da ferramenta não será mais compatível com nenhuma operação. Não é mais possível criar lançamentos de uma versão que usa a versão incompatível. No entanto, todos os dados associados à versão permanecem.

Para conferir as datas de manutenção e expiração na versão, execute o seguinte comando:

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

Também é possível conferir a data de manutenção e expiração de uma ferramenta específica executando o comando:

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

As datas de manutenção e expiração estão disponíveis como anotações nas respectivas versões.