Cómo usar el nuevo repositorio de gráficos Helm de GitLab

GitLab 14.1 ha agregado gráficos de Helm a la creciente lista de formatos de repositorio de paquetes compatibles del software. Ahora puede almacenar y compartir sus gráficos utilizando sus proyectos de GitLab, sin un registro de Helm separado.

Los gráficos de Helm son una colección de manifiestos YAML de Kubernetes distribuidos como un solo paquete. Hacen que sea más fácil y rápido implementar aplicaciones complejas en su clúster. El uso de GitLab como registro le permite a su equipo almacenar los gráficos junto con el código en un repositorio administrado por la organización.

Índice de contenidos
  1. Usando el repositorio de GitLab Helm
  2. Agregue el repositorio a Helm
  3. Empujando al repositorio
  4. Usar gráficos en el repositorio
  5. Acceso al repositorio de GitLab en una canalización de CI
  6. Resumen

Usando el repositorio de GitLab Helm

Asegúrese de que su instancia de GitLab se haya actualizado a la versión 14.1. Si está utilizando la distribución alojada de GitLab.com, ya tendrá todo lo que necesita.

Prepare un gráfico de Helm simple para enviarlo a su repositorio. Raza helm create example producirá un nuevo gráfico estándar llamado example si no tiene uno disponible. El gráfico generado estará listo para ser enviado directamente a GitLab, sin ninguna modificación.

Cambie a su instancia de GitLab. Cree un nuevo proyecto o busque uno existente. Usando la barra lateral izquierda, vaya a Paquetes y registros> Registro de paquetes dentro de su proyecto. Si no ve estos menús, vaya a Configuración> General, expanda el encabezado "Visibilidad, características del proyecto, permisos" y habilite el interruptor "Paquetes".

Agregue el repositorio a Helm

Ahora está listo para comenzar a usar su repositorio de paquetes. Para comenzar, debe registrarlo con su cliente de Helm.

helm repo add 
    --username <username> 
    --password <token> 
    example-repo 
    https://gitlab.example.com/api/v4/projects/<project>/packages/helm/stable

El repositorio local se denominará example-repo. Reemplazar <username> con su nombre de usuario de GitLab. El valor de <token> debe ser un token de acceso personal que pueda enviar paquetes.

Puede generar un nuevo token haciendo clic en el icono de su perfil en la parte superior derecha de la interfaz de GitLab. Seleccione "Preferencias" en el menú, luego "Token de inicio de sesión" en la barra lateral izquierda. Agregue un nuevo token de acceso con el api alcance. El write_repository el alcance puede parecer correcto pero en realidad no funcionará; solo facilita el acceso mediante Git a través de HTTP, mientras que Helm requiere la integración de API.

Reemplace la <project> en la URL de su repositorio con el ID del proyecto de GitLab al que desea enviar. Lo puedes encontrar en su página de inicio, bajo su nombre.

Empujando al repositorio

Una vez que se agrega el repositorio, puede enviar cualquier directorio con un gráfico de Helm válido a su instancia de GitLab. Por lo general, es más fácil instalar el helm-push complemento que agrega un nativo helm push mando.

Empaque su gráfico si aún no lo ha hecho:

helm package example-chart

Esto creará un archivo tar con gzip, example-chart.tgz, que contiene su gráfico.

Añade el helm-push conectar:

helm plugin install https://github.com/chartmuseum/helm-push.git

Finalmente, use el complemento para enviar su gráfico a su repositorio de GitLab:

helm push example-chart.tgz example-repo

Vuelva a la interfaz web de GitLab, vaya a la pantalla Paquetes y registros del proyecto> Registro de paquetes. Debería ver aparecer su gráfico.

Haga clic en el nombre del gráfico para ver sus detalles. Esta pantalla le permite realizar un seguimiento del historial de gráficos, descargar archivos de paquetes y ver versiones anteriores. Puede eliminar el gráfico con el botón "Eliminar" ubicado en la parte superior derecha.

Usar gráficos en el repositorio

Con el gráfico en su repositorio, puede implementarlo en su clúster de Kubernetes. helm install los comandos deberían funcionar de inmediato:

# load the contents of repositories
helm repo update

# install the chart
helm install example-repo/example-chart

Esto iniciará una nueva distribución del gráfico a su grupo activo. Utilizar el --kubeconfig Y --namespace Marcar Helm si es necesario para seleccionar un archivo de configuración de Kubernetes apropiado y especificar el espacio de nombres en el que implementar.

Acceso al repositorio de GitLab en una canalización de CI

Al igual que con otros formatos de paquetes, el repositorio Helm de GitLab se beneficia de la integración integrada con el sistema CI / CD del software. Sus canalizaciones recibirán variables de entorno preestablecidas que simplifican el proceso de publicación de gráficos. No es necesario establecer variables de CI personalizadas para configurar la autenticación.

Aquí hay una canalización de ejemplo que crea un gráfico y lo publica en su repositorio:

stages:
  - helm-publish

helm-publish:
  stage: helm-publish
  image:
    name: alpine/helm:latest
    entrypoint: [""]
  script:
    - helm repo add --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD my-repo $CI_REGISTRY
    - helm package my-chart
    - helm push my-chart.tgz my-repo

El $CI_REGISTRY las variables están configuradas para permitir la inserción de nuevos paquetes en el registro. Puede reutilizarlos al autenticarse en otros repositorios de GitLab, como npm, Composer, NuGet y Maven.

Resumen

GitLab ahora tiene un repositorio de gráficos Helm integrado que le permite almacenar su manifiesto de Kubernetes junto con su código. Cualquiera con acceso de lectura al repositorio del proyecto podrá agregarlo a su cliente Helm e implementar los gráficos en los clústeres de Kubernetes.

Cuando se publique una nueva versión del gráfico, ejecute helm repo update y luego usa helm upgrade para mover las instalaciones implementadas a la nueva versión. Puede administrar versiones de gráficos desde GitLab y eliminar versiones antiguas que están desperdiciando espacio en disco.

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir Change privacy settings