Un possibile scenario prevede l’utilizzo di Helm per installare un’applicazione e gestirne il packaging, mentre Kustomize viene utilizzato per applicare personalizzazioni specifiche per i diversi ambienti.
Esempio: Helm per il deployment e Kustomize per gli Overlay
Immaginiamo un’organizzazione che utilizzi un Chart Helm per distribuire un’applicazione composta da diversi microservizi.
Il team DevOps mantiene un Chart standardizzato che contiene:
- Deployment.
- Service.
- ConfigMap.
- Ingress.
- Dipendenze applicative.
Successivamente, le configurazioni possono essere personalizzate per i diversi ambienti.
Ad esempio:
- Development: risorse ridotte e meno repliche.
- Staging: configurazione simile alla produzione per i test.
- Production: maggiori risorse, policy di sicurezza e configurazioni di monitoraggio.
Helm gestisce il pacchetto applicativo, mentre Kustomize può intervenire sui manifest generati per introdurre le personalizzazioni richieste. Un esempio di questa integrazione è rappresentato dalla funzionalità helmCharts di Kustomize, che consente di utilizzare Chart Helm durante la generazione dei manifest.
È importante ricordare che il supporto al rendering dei Chart Helm tramite Kustomize richiede l’abilitazione dell’opzione --enable-helm e che il risultato viene gestito come manifest, non come una release Helm installata e amministrata direttamente da Helm.
Integrazione con GitOps e Argo CD
Un ulteriore scenario interessante riguarda le architetture GitOps. Strumenti come Argo CD permettono di automatizzare la sincronizzazione tra le configurazioni presenti in un repository Git e lo stato effettivo del cluster Kubernetes.
In questo contesto, Helm può essere utilizzato per distribuire applicazioni attraverso Chart standardizzati, mentre Kustomize permette di organizzare le configurazioni specifiche per ciascun ambiente.
Il team di piattaforma può quindi definire standard comuni, lasciando ai singoli team di sviluppo la possibilità di personalizzare le configurazioni senza dover duplicare intere applicazioni. Questo approccio migliora la manutenibilità e favorisce la standardizzazione dei processi di deployment.
Kustomize o Helm: quale scegliere?
La scelta dipende principalmente dal tipo di problema che si vuole risolvere.

