Administra versiones de herramientas

Cloud Deploy realiza sus operaciones con una imagen personalizada, que incluye versiones de herramientas predeterminadas. Cloud Deploy te brinda flexibilidad y control sobre el proceso de implementación, ya que te permite especificar las versiones de las herramientas que se usarán en las operaciones para renderizar, implementar y verificar tus manifiestos.

En esta página, se describe cómo se seleccionan las versiones de las herramientas de Cloud Deploy, así como el tiempo de mantenimiento y asistencia para cada versión de la herramienta.

Versiones compatibles de las herramientas de Cloud Deploy

Cloud Deploy te permite seleccionar las versiones de las siguientes herramientas:

Cloud Deploy proporciona un repositorio de versiones de herramientas disponibles que puedes usar para tus operaciones. Todas estas versiones están sujetas a la política de mantenimiento y baja.

Versiones de herramientas predeterminadas

Si no se proporcionan versiones de herramientas especificadas por el usuario, se usan las versiones de herramientas predeterminadas durante la creación de la versión.

Cada semana, se lanza una nueva imagen de Cloud Deploy que contiene las versiones de herramientas más recientes disponibles en el momento en que se compila la imagen. Según el momento de los diferentes programas de lanzamiento de las herramientas, una versión de herramienta nueva puede tardar hasta dos semanas en convertirse en la predeterminada.

Para ver las versiones predeterminadas, ejecuta el siguiente comando:

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

Control de versiones de herramientas fijas

De forma predeterminada, todas las versiones de herramientas se guardan en el recurso de versión. Las versiones de herramientas se asocian con una versión en la creación de la versión y se usan durante todo el ciclo de vida de esa versión, y no se pueden cambiar durante ese período. El ciclo de vida de la versión consta de todos los trabajos de renderización, implementación y otros trabajos en esa versión. Esto incluye la implementación en el destino final en la progresión y más allá (reversiones o reimplementaciones). Para encontrar las versiones de herramientas asociadas con una versión, ejecuta el siguiente comando:

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

Las versiones creadas antes de la función de control de versiones de herramientas no tendrán toolVersions en su resultado. En cambio, puedes ver su versión de Skaffold con la marca --format 'yaml(skaffoldVersion)'.

Inhabilita el control de versiones de herramientas fijas

Si deseas inhabilitar el control de versiones de herramientas fijas y usar las herramientas más recientes para una versión determinada, puedes hacerlo especificando la palabra clave especial latest para cada herramienta. Aquí tienes un ejemplo de cómo crear una versión que usa las versiones más recientes para todas las herramientas:

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

Cómo especificar una versión de herramienta en particular para usar

Puedes usar cualquiera de las versiones de herramientas compatibles. Para especificar la versión que deseas usar, incluye la marca adecuada para la herramienta 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 cualquier herramienta en la que desees usar la versión predeterminada, puedes omitir la marca de versión correspondiente.

Por ejemplo, el siguiente comando usa Skaffold 2.16.1 y 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

Compatibilidad de versiones de herramientas

Cloud Deploy se responsabiliza de garantizar que las versiones de herramientas sean compatibles con la imagen de Cloud Deploy. Si usas la función de reemplazo de versiones de herramientas para reemplazar las versiones de herramientas en la imagen de Cloud Deploy, eres responsable de elegir versiones de herramientas compatibles.

Política de baja y mantenimiento de versiones de herramientas

Las versiones de herramientas son compatibles durante 12 meses con un período de mantenimiento de 60 días, a partir del día en que se importan. Este período de mantenimiento significa que las versiones vinculadas a una versión de herramienta aún son compatibles durante 60 días después de que venció la compatibilidad con esa versión de herramienta. Aún puedes crear lanzamientos a partir de esas versiones, pero no puedes crear versiones con una versión de herramienta que esté en el período de mantenimiento.

Después del período de mantenimiento de 60 días, la versión de la herramienta ya no es compatible con ninguna operación. Ya no puedes crear lanzamientos a partir de una versión que use la versión no compatible. Sin embargo, todos los datos asociados con la versión permanecen.

Para ver las fechas de mantenimiento y vencimiento de la versión, ejecuta el siguiente comando:

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

También puedes ver la fecha de mantenimiento y vencimiento de una herramienta específica ejecutando el comando:

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

Las fechas de mantenimiento y vencimiento están disponibles como anotaciones en las versiones respectivas.

Versión heredada de Skaffold

Cloud Deploy solía proporcionar una lista específica de versiones de Skaffold compatibles. Estas versiones de Skaffold correspondían a una imagen de Cloud Deploy que se compiló con esa versión particular de Skaffold y otras herramientas. Las versiones de Skaffold fueron compatibles durante 12 meses, con un período de mantenimiento de 60 días.

Cloud Deploy se está alejando de este modelo para mejorar la postura de seguridad de Cloud Deploy. Sin la necesidad de proporcionar imágenes que correspondan a una versión particular de Skaffold, Cloud Deploy puede abordar las vulnerabilidades con mayor rapidez y actualizar las versiones de herramientas predeterminadas con mayor frecuencia.

Las versiones existentes de Skaffold seguirán siendo compatibles hasta la fecha de vencimiento.

Versión de Skaffold A partir de la siguiente fecha Inicio del mantenimiento Vencimiento
2.16 (notas de la versión) 12 de mayo de 2025 14 de mayo de 2026 13 de julio de 2026

Para seguir creando versiones que usen estas versiones específicas de Skaffold, usa la marca --skaffold-version en el siguiente comando:

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