Helm is een package manager voor Kubernetes. Helm gebruikt een package formaat genaamd 'Charts'. Een Chart is een verzameling bestanden die een gerelateerde set van Kubernetes resources beschrijft.
Een Helm Chart kan gebruikt worden om zowel eenvoudige als complexe applicaties uit te rollen, denk bij dit laatste bijvoorbeeld aan een web app met HTTP servers, databases, etc.
Een Chart bevat bestanden die in een specifieke mappenstructuur zijn opgenomen. Om hier een beter beeld van te krijgen, laten we een voorbeeld zien van een WordPress Helm Chart.
De directory naam is de naam van de Chart zonder versie informatie. Voor WordPress wordt bijvoorbeeld de map wordpress/ gebruikt. Binnen deze map gebruikt Helm de volgende structuur:
wordpress/
Chart.yaml # Een YAML file met informatie over de Helm Chart
LICENSE # OPTIONEEL: Een plain text bestand met licentie informatie
README.md # OPTIONEEL: Een voor mensen begrijpelijke README file
values.yaml # De standaard configuratie voor deze specifieke Helm Chart
values.schema.json # OPTIONEEL: Een JSON Schema voor het vaststellen van een structuur voor de values.yaml file
charts/ # Een map met aanvullende charts waar deze chart van afhankelijk is.
crds/ # Een map voor Custom Resource Definitions
templates/ # Een map met templates die, wanneer gecombineerd met waardes,
# valide Kubernetes manifest files genereren.
templates/NOTES.txt # OPTIONEEL: Een plain text bestand met korte gebruiksaantekeningen
Helm reserveert de hierboven genoemde bestandsnamen en de charts/ crds/ en templates/ mappen. Andere bestanden (afwezig in dit voorbeeld) worden gelaten zoals ze zijn.
Voor meer verdiepende documentatie, zie de Helm Charts documentatie.