⛑️ Helm Cheatsheet Completo ⛑️

Helm es el gestor de paquetes para Kubernetes. Te ayuda a definir, instalar y actualizar incluso las aplicaciones de Kubernetes más complejas. Los “paquetes” de Helm se llaman Charts.


1. 🌟 Conceptos Clave


2. 🛠️ Configuración Inicial

  1. Instalar Helm (CLI):
    • macOS (Homebrew): brew install helm
    • Linux (Snap): sudo snap install helm --classic
    • Windows (Chocolatey): choco install kubernetes-helm
    • O descarga los binarios desde github.com/helm/helm/releases.
  2. Verificar Instalación:
    helm version
  3. Configurar Acceso al Clúster Kubernetes: Helm utiliza la configuración de kubectl (~/.kube/config). Asegúrate de que kubectl pueda conectarse a tu clúster.

3. 🚀 Gestión de Repositorios de Charts

3.1. Añadir un Repositorio Remoto

3.2. Listar Repositorios

helm repo list

3.3. Actualizar Repositorios

3.4. Buscar Charts en Repositorios

helm search repo wordpress # Busca 'wordpress' en los repositorios añadidos
helm search hub wordpress # Busca 'wordpress' en Helm Hub (repositorios públicos indexados)

4. 📦 Gestión de Charts y Releases

4.1. Crear un Nuevo Chart (Scaffold)

4.2. Instalar un Chart

4.3. Listar Releases

4.4. Obtener Información de una Release

4.5. Actualizar una Release

4.6. Deshacer un Despliegue (Rollback)

4.7. Desinstalar una Release


5. 📄 Estructura de un Chart (Directorio my-new-app/)

my-new-app/
├── Chart.yaml                  # Información del Chart
├── values.yaml                 # Valores de configuración por defecto
├── charts/                     # Subcharts (opcional)
│   └── my-subchart/
│       ├── Chart.yaml
│       └── ...
├── templates/                  # Manifiestos de Kubernetes con templating
│   ├── _helpers.tpl            # Plantillas auxiliares (funciones reusables)
│   ├── deployment.yaml         # Definición de Deployment
│   ├── service.yaml            # Definición de Service
│   ├── ingress.yaml            # Definición de Ingress (opcional)
│   ├── serviceaccount.yaml     # Service Account (opcional)
│   ├── configmap.yaml          # ConfigMap (opcional)
│   ├── secret.yaml             # Secret (opcional)
│   └── NOTES.txt               # Mensaje post-instalación
├── Chart.lock                  # Lock file (generado, como package-lock.json)
└── .helmignore                 # Archivos a ignorar al empaquetar

6. 📝 Templating (Dentro de templates/*.yaml)

Helm utiliza Go templating para procesar los manifiestos de Kubernetes.


7. 💡 Buenas Prácticas y Consejos


Este cheatsheet te proporciona una referencia completa de Helm, cubriendo sus conceptos esenciales, cómo gestionar Charts y Releases, la estructura de un Chart, el templating y las mejores prácticas para definir, instalar y actualizar aplicaciones en Kubernetes de manera eficiente.