Helm
El gestor de paquetes de Kubernetes: instalás una app entera con un comando.
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.
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)
- Charts, en la documentación de Helm (en inglés)
- Helm (software) en Wikipedia (en inglés)