Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Administra gráficos de Helm

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

Antes de comenzar

  1. Si el repositorio de destino no existe, crea un repositorio nuevo. Elige Docker como formato de repositorio.
  2. Verifica que tengas los permisos necesarios para el repositorio.
  3. (Opcional) Configura valores predeterminados para los comandos de gcloud.
  4. Instala Helm 3 si aún no lo hiciste.

  5. Habilita la compatibilidad experimental de Helm para imágenes de OCI con la variable HELM_EXPERIMENTAL_OCI. Agrega la siguiente línea a ~/.bashrc (o ~/.bash_profile en macOS, o donde tu shell almacene las variables de entorno):

    export HELM_EXPERIMENTAL_OCI=1
    
  6. Ejecuta el siguiente comando para cargar tu archivo .bashrc (o .bash_profile) actualizado:

    source ~/.bashrc
    

Crea o obtén un gráfico

En esta documentación, se explica cómo administrar las imágenes de los gráficos y se supone que tienes gráficos existentes o que estás familiarizado con la creación de gráficos. Para obtener más información sobre la creación de gráficos o la obtención de gráficos disponibles de forma pública en Artifact Hub, consulta la siguiente información en la documentación de Helm.

  • En Usa Helm, se describe la obtención de gráficos del público Artifact Hub y la personalización de un gráfico antes de instalarlo.
  • En Gráficos, se describen los gráficos y la creación de gráficos.
  • En la guía de prácticas recomendadas para gráficos, se describen las convenciones y las prácticas recomendadas.

Guarda un gráfico en formato OCI

Antes de enviar un gráfico a Artifact Registry, debes guardarlo como una imagen de contenedor.

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

  2. Guarda el gráfico como una imagen de OCI y usa la ruta de acceso completa a la ubicación de la imagen en el repositorio de destino.

    helm chart save CHART-PATH LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
    

    Reemplaza los siguientes valores:

    • CHART-PATH es la ruta de acceso que contiene el archivo Chart.yaml.
    • LOCATION es la ubicación regional o multirregional del repositorio.
    • PROJECT es el ID de tu proyecto de Google Cloud. Si el ID de tu 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 de la imagen.

    Si no especificas una etiqueta con TAG, Helm etiqueta la imagen con el número de versión de gráfico predeterminado en tu archivo CHART-PATH/Chart.yaml. Actualizar este número de versión cada vez que realices cambios en un gráfico es una forma útil de mantener los metadatos de Chart.yaml sincronizados con tus etiquetas de imagen de contenedor.

    Considera el siguiente ejemplo:

    helm chart save my-chart/ us-central1-docker.pkg.dev/my-project/my-repo/my-chart
    

    Si la versión del gráfico es 0.1.0, Helm usa este número de versión como la etiqueta. El resultado del comando Save es el siguiente:

    ref:     us-central1-docker.pkg.dev/my-project/my-repo/my-chart:0.1.0
    digest:  decd0b41c389fd46c586c292eaf05f446fe05dc56248f409bef2c123ab7b7032
    size:    3.5 KiB
    name:    my-chart
    version: 0.1.0
    0.1.0: saved
    
  3. Enumera los gráficos en tu caché local para confirmar que el gráfico se guarda de forma local.

    helm chart list
    

    La lista incluye tu gráfico guardado.

    REF                                                             NAME            VERSION DIGEST  SIZE    CREATED
    us-central1-docker.pkg.dev/my-project/my-repo...   my-chart     0.1.0   decd0b4 3.5 KiB 2 minutes
    

Ahora puede enviar la imagen de su gráfico a Artifact Registry.

Envía un gráfico

Una vez que guardaste tu gráfico como una imagen de contenedor, puedes enviarlo a Artifact Registry.

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

helm chart push LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Reemplaza los siguientes valores:

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID de tu proyecto de Google Cloud. Si el ID de tu 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 de la imagen.

Ejecuta el siguiente comando para verificar que el gráfico ahora esté almacenado en el repositorio:

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

Si ya no necesitas una copia de la imagen en tu caché local de Helm, puedes borrar la copia local.

Obteniendo gráficos

No puedes implementar una versión directamente desde un gráfico guardado como imagen de contenedor. Si quieres usar el gráfico, debes extraer la imagen, extraer los archivos del gráfico y, luego, usar los archivos extraídos para realizar la implementación.

  1. Extrae la imagen del gráfico de Artifact Registry con el siguiente comando:

    helm chart pull LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
    

    Reemplaza los siguientes valores:

    • LOCATION es la ubicación regional o multirregional del repositorio.
    • PROJECT es el ID de tu proyecto de Google Cloud. Si el ID de tu 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 de la imagen.
  2. Para extraer los archivos del gráfico de la imagen, ejecuta el siguiente comando:

    helm chart export LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG
    

Ahora puedes usar los archivos de gráfico extraídos para instalar una versión con el comando helm install.

En el siguiente ejemplo, se instala una versión llamada release1 mediante un gráfico almacenado en el directorio my-chart.

helm install release1 ./my-chart

Enumera gráficos

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

Console

Para ver imágenes en un repositorio, haz lo siguiente:

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página Repositorios

  2. Haz clic en el repositorio que contiene el gráfico.

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

gcloud

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

gcloud artifacts docker images list [--include-tags]

Para mostrar 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 \
[--include-tags]

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 de tu proyecto de Google Cloud. Si el ID de tu 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, en la lista que se muestra, solo se incluyen imágenes de contenedores de nivel superior.

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

  • Ubicación del repositorio: us
  • 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-docker.pkg.dev/my-project/my-repo

El nombre completo de la imagen es:

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

Para obtener más información sobre el formato de nombre de imagen, consulta Nombres de repositorio y de imagen.

Agrega y quita etiquetas

Cuando empaquetas un gráfico como una imagen de OCI sin especificar una etiqueta, Helm agrega de forma automática una etiqueta con el número de versión del gráfico en Chart.yaml.

Puedes agregar y borrar etiquetas adicionales en Artifact Registry mediante Google Cloud Console o la línea de comandos.

Cómo agregar las etiquetas

En un repositorio, las etiquetas son exclusivas de una versión de una imagen. Por lo tanto, si tiene varias versiones de una imagen, cada etiqueta se aplica solo a una de las versiones. Si aplicas a una imagen una etiqueta que ya está en uso, moverás la etiqueta de la versión original a la nueva.

Console

Para etiquetar una imagen en un repositorio, haz lo siguiente:

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página Repositorios

  2. Haz clic en la imagen para ver las versiones de esta.

  3. Selecciona la versión de la imagen que deseas etiquetar.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Escribe las etiquetas nuevas en el campo y haz clic en GUARDAR.

gcloud

Para etiquetar imágenes en un repositorio, especifica la versión de la imagen mediante el resumen o la etiqueta de la imagen y, luego, especifica la etiqueta que deseas agregar. Ejecuta uno de los siguientes comandos:

gcloud artifacts docker tags add IMAGE-VERSION TAG

Donde

  • IMAGE-VERSION es el nombre completo de la versión de la imagen que deseas etiquetar mediante el resumen de imágenes o una etiqueta existente en la versión de la imagen.
  • TAG es el nombre completo de la etiqueta que deseas agregar.

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

  • Ubicación del repositorio: us
  • Nombre del repositorio: my-repo
  • ID del proyecto: my-project
  • Nombre de la imagen: my-image
  • Etiqueta existente: iteration6-final
  • Etiqueta que se desea agregar: release-candidate

Para agregar la etiqueta release-candidate a la versión de la imagen con la etiqueta iteration6-final, ejecuta el siguiente comando:

gcloud artifacts docker tags add \
us-docker.pkg.dev/my-project/my-repo/my-image:iteration6-final \
us-docker.pkg.dev/my-project/my-repo/my-image:release-candidate

Para obtener detalles sobre el formato del nombre de la imagen, incluido el manejo de proyectos con alcance de dominio, consulta Nombres de imágenes y repositorios.

Borra etiquetas

Puedes quitar una etiqueta de una imagen en Artifact Registry mediante Google Cloud Console o la línea de comandos.

Console

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página Repositorios

  2. Haz clic en la imagen para ver las versiones de esta.

  3. Selecciona la versión de la imagen de la que deseas quitar una etiqueta.

  4. En la fila de la versión seleccionada, haz clic en Más acciones (Más acciones) y, luego, en Editar etiquetas.

  5. Borra la etiqueta y haz clic en GUARDAR.

gcloud

Para borrar una etiqueta y quitarla de la imagen, ejecuta el siguiente comando:

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

Donde

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID de tu proyecto de Google Cloud. Si el ID de tu 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.

Borra imágenes

Cuando guardas los archivos de gráficos de forma local como una imagen con el comando helm chart save, Helm almacena la imagen en su caché local. Una vez que la imagen se almacena en Artifact Registry, puedes borrar la copia local de la imagen de la caché.

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

Para borrar una imagen en la caché de imagen de Helm local, ejecuta el comando siguiente.

helm chart remove LOCATION-docker.pkg.dev/PROJECT/REPOSITORY/IMAGE:TAG

Reemplaza los siguientes valores:

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID de tu proyecto de Google Cloud.
  • 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 de la imagen.

Para borrar una imagen almacenada en Artifact Registry, haz lo siguiente:

Console

  1. Abre la página Repositorios en Cloud Console.

    Abrir la página Repositorios

  2. Haz clic en el nombre de la imagen para ver la versión correspondiente.

  3. Selecciona las versiones que deseas borrar.

  4. Haz clic en BORRAR.

  5. En el cuadro de 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]

Donde

  • LOCATION es la ubicación regional o multirregional del repositorio.
  • PROJECT es el ID de tu proyecto de Google Cloud. Si el ID de tu 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 varias etiquetas están asociadas a la misma versión de una imagen, debes incluir --delete-tags para borrar la versión de la imagen sin quitar primero las etiquetas.
  • 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 primero la etiqueta.
  • --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 cuando ocurre lo siguiente:
    • 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?