Administra gráficos de Helm

Almacenar gráficos de Helm 3 como imágenes de contenedor de OCI te permite administrarlos de la misma manera que las imágenes de Docker en Artifact Registry. Puedes subir (enviar), descargar (extraer), enumerar, etiquetar y borrar gráficos para administrar su ciclo de vida en tus repositorios.

Antes de comenzar

  1. Si el repositorio de destino no existe, crea un repositorio nuevo. Elige Docker como el formato del repositorio.
  2. Verifica que tengas los permisos necesarios para el repositorio.
  3. Configura los valores predeterminados para los comandos de Google Cloud CLI (opcional).
  4. Instala Helm 3.8.0 o una versión posterior. En las versiones anteriores de Helm, la compatibilidad con los gráficos en formato OCI es una función experimental.

    Ejecuta helm version para verificar tu versión.

  5. Configura Helm para que se autentique con Artifact Registry.

Crea o consigue un gráfico

Esta documentación se enfoca en administrar las imágenes de tus gráficos y supone que tienes gráficos existentes o que sabes cómo crearlos. Para obtener más información sobre cómo crear gráficos o conseguir gráficos disponibles de forma pública en Artifact Hub, consulta la siguiente información en la documentación de Helm.

Empaqueta un gráfico

Antes de enviar un gráfico a Artifact Registry, debes empaquetarlo como un archivo de gráfico.

  1. Cambia al directorio que contiene tu gráfico.

  2. Empaqueta el gráfico.

    helm package CHART-PATH
    

    Reemplaza CHART-PATH por la ruta de acceso al directorio que contiene tu archivo Chart.yaml.

Helm usa el nombre y la versión del chart para el nombre del archivo. Por ejemplo, si tienes un gráfico con el nombre my-chart y el número de versión 0.1.0, el nombre del paquete es my-chart-0.1.0.tgz.

Ahora puedes enviar el gráfico a Artifact Registry.

Envía un gráfico

Después de empaquetar el gráfico, puedes enviarlo a Artifact Registry.

Para enviar el gráfico, ejecuta el siguiente comando:

helm push my-chart-0.1.0.tgz oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Reemplaza los siguientes valores:

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID del proyecto de Google Cloud . Si el ID del proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY es el nombre del repositorio.

Helm usa la información de Chart.yaml para el nombre y la etiqueta de la imagen de contenedor de OCI. Considera el siguiente comando de ejemplo:

helm push my-chart-0.1.0.tgz oci://us-west1-docker.pkg.dev/my-project/my-repo

Helm sube el archivo del gráfico como la imagen my-chart con la etiqueta 0.1.0.

Para verificar que la operación de envío se haya realizado correctamente, enumera las imágenes en el repositorio.

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Extrayendo gráficos

Para extraer un gráfico, haz lo siguiente:

  1. Ejecuta el siguiente comando para extraer el archivo del gráfico:

    helm pull oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
        --version VERSION
    

    Si deseas extraer el archivo del gráfico y su contenido, agrega la marca --untar.

    helm pull oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
        --version VERSION \
        --untar
    

    Reemplaza los siguientes valores:

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT: Es el ID del proyecto de Google Cloud . Si el ID del proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY es el nombre del repositorio en el que se almacena la imagen.
  • IMAGE es el nombre de la imagen en el repositorio.
  • VERSION es la versión semántica del gráfico. Esta marca es obligatoria. Helm no admite la extracción de un gráfico con una etiqueta.

Instala un gráfico

Instala un gráfico almacenado en Artifact Registry con el comando helm install.

helm install RELEASE \
    oci://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
    --version VERSION

En el siguiente ejemplo, se instala una versión llamada release1 con la versión 0.1.0 del gráfico us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart:

helm install release1 oci://us-west1-docker.pkg.dev/nyap-test/helm-repo/my-chart --version 0.1.0

Gráficos de fichas

Puedes enumerar los gráficos con la Google Cloud console o la línea de comandos. Si almacenas imágenes de contenedor y gráficos en el mismo repositorio de Docker, ambos tipos de artefactos aparecen en la lista.

Console

Para ver las imágenes de un repositorio, sigue estos pasos:

  1. Abre la página Repositorios en la consola de Google Cloud .

    Abrir la página repositorios

  2. Haz clic en el repositorio con la imagen de contenedor.

  3. Haz clic en una imagen para ver las versiones.

gcloud

Para enumerar todas las imágenes en el proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:

gcloud artifacts docker images list

Para enumerar las imágenes de un repositorio en una ubicación específica, ejecuta el siguiente comando:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

Para enumerar todos los resúmenes y las etiquetas de una imagen específica, ejecuta el siguiente comando:

gcloud artifacts docker images list LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE \
--include-tags

Reemplaza los siguientes valores:

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID del proyecto de Google Cloud . Si el ID del proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY es el nombre del repositorio en el que se almacena la imagen.
  • IMAGE es el nombre de la imagen en el repositorio.
  • --include-tags muestra todas las versiones de las imágenes, incluidos los resúmenes y las etiquetas. Si se omite esta marca, la lista que se muestra solo incluye imágenes de contenedor de nivel superior.

Por ejemplo, considera una imagen con las siguientes características:

  • Ubicación del repositorio: us-west1
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: my-image

El nombre completo del repositorio es el siguiente:

us-west1-docker.pkg.dev/my-project/my-repo

El nombre completo de la imagen es el siguiente:

us-west1-docker.pkg.dev/my-project/my-repo/my-image

Para obtener detalles sobre el formato del nombre de la imagen, consulta Nombres de repositorios y de imágenes.

Creando lista de archivos

Puedes enumerar los archivos de un repositorio, los archivos de todas las versiones de una imagen de contenedor específica o los archivos de una versión específica de una imagen.

Para todos los comandos siguientes, puedes establecer una cantidad máxima de archivos que se mostrarán agregando la marca --limit al comando.

Para enumerar todos los archivos en el proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:

gcloud artifacts files list

Para enumerar los archivos de un proyecto, repositorio y ubicación específicos, ejecuta el siguiente comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

Para enumerar los archivos de todas las versiones de una imagen de contenedor específica, haz lo siguiente:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

Para enumerar los archivos de una versión específica de la imagen de contenedor, haz lo siguiente:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION
Para enumerar los archivos de una etiqueta específica, ejecuta el siguiente comando:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --tag=TAG

Reemplaza los siguientes valores:

  • LOCATION: Es la ubicación regional o multirregional del repositorio.
  • PROJECT: Es el ID del proyecto de Google Cloud . Si el ID del proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY: Es el nombre del repositorio en el que se almacena la imagen.
  • PACKAGE: Es el nombre de la imagen.
  • VERSION: Es el resumen de la imagen, una cadena que comienza con sha256:.
  • TAG: Es la etiqueta asociada con la imagen de contenedor.

Borra imágenes

En un repositorio de Artifact Registry, puedes borrar una imagen de contenedor completa o una versión de imagen específica asociada con una etiqueta o un resumen. Una vez que borraste una imagen, no puedes deshacer la acción.

Para borrar una imagen almacenada en Artifact Registry, sigue estos pasos:

Console

  1. Abre la página Repositorios en la consola de Google Cloud .

    Abrir la página repositorios

  2. Haz clic en el nombre de la imagen para ver las versiones de esa imagen.

  3. Selecciona las versiones que quieres borrar.

  4. Haz clic en BORRAR.

  5. En el diálogo de confirmación, haz clic en BORRAR.

gcloud

Para borrar una imagen y todas sus etiquetas, ejecuta el siguiente comando:

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE --delete-tags

Para borrar una versión específica de una imagen, usa uno de los siguientes comandos.

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG [--delete-tags]

o

gcloud artifacts docker images delete LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE@IMAGE-DIGEST [--delete-tags]

Dónde

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID del proyecto de Google Cloud . Si el ID del proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.
  • REPOSITORY es el nombre del repositorio en el que se almacena la imagen.
  • IMAGE es el nombre de la imagen en el repositorio.
  • TAG es la etiqueta de la versión que deseas borrar. Si hay varias etiquetas asociadas con la misma versión de imagen, debes incluir --delete-tags para borrar la versión de imagen sin quitar las etiquetas primero.
  • IMAGE-DIGEST es el valor de hash SHA256 de la versión que deseas borrar. Si una etiqueta está asociada con el resumen de la imagen, debes incluir --delete-tags para borrar la versión de la imagen sin quitar la etiqueta primero.
  • --delete-tags quita todas las etiquetas aplicadas a la versión de la imagen. Esta marca te permite forzar la eliminación de una versión de imagen en los siguientes casos:
    • Especificaste una etiqueta, pero hay otras etiquetas asociadas con la versión de la imagen.
    • Especificaste un resumen de la imagen que tiene al menos una etiqueta.

¿Qué sigue?