Gestionar gráficos de Helm

En esta página se explica cómo gestionar los gráficos de Helm 3 guardados como imágenes de contenedor OCI, lo que incluye enviar (subir), extraer (descargar), listar, etiquetar y eliminar gráficos.

Antes de empezar

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

    Ejecuta helm version para verificar tu versión.

  5. Configura Helm para autenticarte con Artifact Registry.

Crear u obtener un gráfico

Esta documentación se centra en la gestión de las imágenes de los gráficos y presupone que ya tienes gráficos o que sabes cómo crearlos. Para obtener más información sobre cómo crear gráficos o conseguir gráficos disponibles públicamente en Artifact Hub, consulta la siguiente información en la documentación de Helm.

Empaquetar un gráfico

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

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

  2. Empaqueta el gráfico.

    helm package CHART-PATH
    

    Sustituye CHART-PATH por la ruta del directorio que contiene el archivo Chart.yaml.

Helm usa el nombre y la versión del gráfico 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 puede enviar el gráfico a Artifact Registry.

Insertar un gráfico

Una vez que hayas empaquetado tu 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.s3nsregistry.fr/PROJECT/REPOSITORY

Sustituye los siguientes valores:

  • LOCATION es la ubicación regional del repositorio.
  • PROJECT es el Trusted Cloud by S3NS ID de tu proyecto.
  • 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 OCI. Veamos un ejemplo de comando:

helm push my-chart-0.1.0.tgz oci://u-france-east1-docker.s3nsregistry.fr/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 push se ha realizado correctamente, enumera las imágenes del repositorio.

gcloud artifacts docker images list LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY

Consultar gráficos

Para extraer un gráfico, sigue estos pasos:

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

    helm pull oci://LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE \
        --version VERSION
    

    Si quieres extraer el archivo del gráfico y su contenido, añade la marca --untar.

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

    Sustituye los siguientes valores:

  • LOCATION es la ubicación regional del repositorio.
  • PROJECT es el Trusted Cloud by S3NS ID de tu proyecto.
  • 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 mediante una etiqueta.

Instalar un gráfico

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

helm install RELEASE \
    oci://LOCATION-docker.s3nsregistry.fr/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 u-france-east1-docker.s3nsregistry.fr/nyap-test/helm-repo/my-chart:

helm install release1 oci://u-france-east1-docker.s3nsregistry.fr/nyap-test/helm-repo/my-chart --version 0.1.0

Consultar gráficos

Puedes consultar los gráficos mediante la Trusted 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 aparecerán en la lista.

Consola

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

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

    Abre la página Repositorios.

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

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

gcloud

Para enumerar todas las imágenes del proyecto, el repositorio y la ubicación predeterminados cuando los valores predeterminados estén configurados, haz lo siguiente:

gcloud artifacts docker images list

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

gcloud artifacts docker images list LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY

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

gcloud artifacts docker images list LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE \
--include-tags

Sustituye los siguientes valores:

  • LOCATION es la ubicación regional del repositorio.
  • PROJECT es el Trusted Cloud by S3NS ID de tu proyecto.
  • 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 devuelta solo incluirá imágenes de contenedor de nivel superior.

Por ejemplo, supongamos que tienes una imagen con las siguientes características:

  • Ubicación del repositorio: u-france-east1
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: my-image

El nombre completo del repositorio es:

u-france-east1-docker.s3nsregistry.fr/my-project/my-repo

El nombre completo de la imagen es:

u-france-east1-docker.s3nsregistry.fr/my-project/my-repo/my-image

Para obtener información sobre el formato de los nombres de las imágenes, consulta Nombres de repositorios e imágenes.

Mostrar archivos

Puedes enumerar los archivos de un repositorio, los archivos de todas las versiones de una imagen de contenedor especificada o los archivos de una versión concreta de una imagen.

En todos los comandos siguientes, puedes definir un número máximo de archivos que se devuelvan añadiendo la marca --limit al comando.

Para enumerar todos los archivos del 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, un repositorio y una 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 una imagen de contenedor, sigue estos pasos:

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

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

Sustituye los siguientes valores:

  • LOCATION: la ubicación regional del repositorio.
  • PROJECT: tu Trusted Cloud by S3NS ID de proyecto.
  • REPOSITORY: el nombre del repositorio en el que se almacena la imagen.
  • PACKAGE: el nombre de la imagen.
  • VERSION: el digest de la imagen, una cadena que empieza por sha256:.
  • TAG: la etiqueta asociada a la imagen del contenedor.

Eliminando imágenes

En un repositorio de Artifact Registry, puede eliminar un contenedor completo o una versión de imagen específica asociada a una etiqueta o a un digest. Una vez que hayas eliminado una imagen, no podrás deshacer la acción.

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

Consola

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

    Abre la página Repositorios.

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

  3. Selecciona las versiones que quieras eliminar.

  4. Haz clic en ELIMINAR.

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

gcloud

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

gcloud artifacts docker images delete LOCATION-docker.s3nsregistry.fr/PROJECT/REPOSITORY/IMAGE --delete-tags

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

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

o

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

Dónde

  • LOCATION es la ubicación regional del repositorio.
  • PROJECT es el Trusted Cloud by S3NS ID de tu proyecto.
  • 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 quieres eliminar. Si hay varias etiquetas asociadas a la misma versión de la imagen, debes incluir --delete-tags para eliminar la versión de la imagen sin quitar las etiquetas primero.
  • IMAGE-DIGEST es el valor de hash sha256 de la versión que quieres eliminar. Si una etiqueta está asociada al digest de la imagen, debes incluir --delete-tags para eliminar la versión de la imagen sin quitar la etiqueta primero.
  • --delete-tags elimina todas las etiquetas aplicadas a la versión de la imagen. Esta marca te permite forzar la eliminación de una versión de una imagen cuando:
    • Ha especificado una etiqueta, pero hay otras etiquetas asociadas a la versión de la imagen.
    • Has especificado un digest de imagen que tiene al menos una etiqueta.

Siguientes pasos