Che cos’è Helm e come funziona?
Helm è un package manager per Kubernetes, spesso paragonato a un gestore di pacchetti software.
Il suo obiettivo è semplificare la distribuzione e la gestione delle applicazioni attraverso pacchetti chiamati Helm Chart.
Un Chart raccoglie tutte le risorse Kubernetes necessarie per installare un’applicazione, insieme ai relativi template e parametri di configurazione. Il vantaggio principale è la possibilità di creare pacchetti riutilizzabili, personalizzabili attraverso file di configurazione.
Come funziona un Helm Chart?
Un Chart può avere una struttura simile alla seguente:
web-app/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ingress.yaml
└── charts/
I principali elementi sono:
- Chart.yaml: contiene le informazioni sul pacchetto, come nome e versione.
- values.yaml: definisce i parametri utilizzati per personalizzare l’applicazione.
- templates/: contiene i template dei manifest Kubernetes.
- charts/: può contenere le dipendenze da altri Chart.
Uno dei punti di forza di Helm è il motore di templating basato sulla sintassi dei template Go.
Questo permette di definire configurazioni dinamiche attraverso variabili. Ad esempio, nel template di un Deployment possiamo utilizzare:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: {{ .Values.replicaCount }}
Nel file values.yaml definiamo invece:
replicaCount: 3
Per modificare il numero di repliche è sufficiente intervenire sul file dei valori, senza dover modificare direttamente il template.
Installazione e gestione delle applicazioni
Helm mette a disposizione diversi comandi per gestire il ciclo di vita delle applicazioni.

