# Helm

> El gestor de paquetes de Kubernetes: instalás una app entera con un comando.

- Nivel: Avanzado
- Temas: Cloud
- URL: https://tidbit.legios.com.ar/es/helm/
- En inglés: [Helm](https://tidbit.legios.com.ar/helm/)

**Helm** es una herramienta para instalar y actualizar aplicaciones en Kubernetes. Una app real en Kubernetes necesita un montón de archivos YAML: Deployments, Services, ConfigMaps, Secrets, reglas de Ingress. Helm los empaqueta en algo llamado **chart**, así que en vez de aplicar una docena de archivos a mano corrés `helm install my-db bitnami/postgresql` y tenés una base de datos andando.

Un chart es una carpeta de **plantillas** con huecos para completar, más un archivo `values.yaml` con valores por defecto: cuántas réplicas, qué versión de la imagen, cuánta memoria. Vos pisás lo que necesites, por ejemplo un disco más grande en producción, y Helm completa las plantillas y manda el resultado al cluster. Cada instalación es un **release** con historial de versiones, así que `helm upgrade` lo lleva hacia adelante y `helm rollback` lo devuelve a una versión anterior si algo se rompe.

Los charts se comparten en repositorios, y el software popular, desde bases de datos hasta herramientas de monitoreo, suele publicar un chart oficial. Helm es un proyecto graduado de la Cloud Native Computing Foundation y muchas veces lo manejan herramientas de GitOps como Argo CD o Flux. La queja típica es que el YAML con plantillas se vuelve difícil de leer; alternativas como Kustomize, en cambio, parchean YAML común.

## Una analogía

Como la tienda de apps del celular, pero para un cluster de Kubernetes: elegís una app, ajustás un par de opciones, tocás instalar, y después tocás actualizar o deshacer la actualización, sin armar cada pieza vos.

## Para quedarse

- Gestor de paquetes para Kubernetes; los paquetes se llaman charts.
- Un chart son plantillas más un values.yaml que podés pisar.
- Cada instalación es un release que podés actualizar o volver atrás.
- Proyecto graduado de la CNCF; casi todo el software de infraestructura trae su chart.

## Para seguir leyendo

- [Documentación de Helm (en inglés)](https://helm.sh/docs/)
- [Charts, en la documentación de Helm (en inglés)](https://helm.sh/docs/topics/charts/)
- [Helm (software) en Wikipedia (en inglés)](https://en.wikipedia.org/wiki/Helm_(software))

## Términos relacionados

- [Kubernetes](https://tidbit.legios.com.ar/es/kubernetes/): El sistema que corre y cuida contenedores en muchas máquinas a la vez.
- [Base de datos](https://tidbit.legios.com.ar/es/database/): Un depósito ordenado de datos que los programas consultan y actualizan sin riesgo.
- [Cloud-native](https://tidbit.legios.com.ar/es/cloud-native/): Software pensado desde el principio para aprovechar la nube, no solo mudado a ella.
- [GitOps](https://tidbit.legios.com.ar/es/gitops/): Manejar la infraestructura desde Git, con un agente que hace que la realidad coincida.
- [App móvil](https://tidbit.legios.com.ar/es/mobile-app/): Un programa hecho para correr en un celular o tablet, casi siempre bajado de una tienda.
- [Biblioteca de software](https://tidbit.legios.com.ar/es/software-library/): Código ya hecho para una tarea común que se enchufa dentro de otros programas.
- [Paquete](https://tidbit.legios.com.ar/es/packet/): El pedacito en que se corta cada dato de internet antes de viajar.
