Om software packages op een eenvoudige manier te installeren op een Kubernetes cluster is er de package-manager Helm. Eigenlijk moet ik zeggen de charts-manager want software-packages vanuit Helm worden charts genoemd. Installatie (op een Mac) gaat eenvoudig met brew:
$ brew install kubernetes-helm
Installeren van Helm chart
Het installeren van een helm-chart gaat eenvoudig met het install commando:
$ kubectl create namespace wordpress $ helm install wordpress stable/wordpress --namespace wordpress
De ‘namespace’ parameter gebruik ik als voorbeeld omdat deze template anders de ‘default’ namespace gebruikt. Er verschijnt uitvoer op het scherm met variabelen die ge-exporteerd dienen te worden, bijvoorbeeld de gebruikersnaam en het wachtwoord van het WordPress-admin account. Volg de instructies op het scherm om deze te vinden, samen met de URL van de nieuwe WordPress site.
Aangezien we minikube gebruiken op een locale computer gaan we het poort-nummer van de service opvragen:
$ kubectl -n wordpress get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE wordpress-mariadb ClusterIP 10.101.172.202 <none> 3306/TCP 51s wordpress-wordpress LoadBalancer 10.110.11.194 <pending> 80:30270/TCP,443:32699/TCP 51s
En hier zie je het poortnummer dat gebruikt wordt door de wordpress service, in dit geval TCP-port 30270. Met het commando
$ minikube ip
wordt het IP adres van de minikube cluster getoond en nu kan een browser naar dit adres gevolgd door het poort-nummer de WordPress site benaderen.

Inspect values
De waardes die gebruikt worden voor het installeren van WordPress kunnen bekeken worden met ‘inspect‘
$ helm inspect values stable/wordpress
Dit geeft een output van de waardes op het scherm en deze kunnen eventueel naar een YAML-bestand gestuurd worden om aan te passen. Het bestand dient dan meegegeven te worden tijdens de installatie met de –values optie.
Upgraden
Met helm kunnen de releases ge-upgrade worden naar een nieuwe versie:
$ helm upgrade wordpress stable/wordpress $ helm list
Met het commando ‘helm list‘ zie je dat we nu met REVISION 2 werken.
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE wordpress 2 Wed Jul 3 11:18:09 2019 DEPLOYED wordpress-5.12.6 5.2.2 wordpress
Rollback
Mocht nu, om wat voor reden dan ook, een nieuwe release niet voldoen dan kan met helm een rollback uitgevoerd worden naar een vorige release:
$ helm rollback wordpress 1 $ helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE wordpress 3 Wed Jul 3 11:24:26 2019 DEPLOYED wordpress-5.12.6 5.2.2 wordpress
Opruimen
Verwijderen van de WordPress configuratie gaat nu net zo eenvoudig als het installeren. Aangezien we een naam hebben gegeven tijdens het installeren kunnen we deze ook gebruiken bij het verwijderen:
$ helm del --purge wordpress $ kubectl delete namespace wordpress
Dat laatste commando is nodig als de namespace geen onderdeel is van de helm template.
Repositories
Helm gebruikt standaard de repositories ‘stable’ en ‘local’ en de locaties kunnen opgevraagd worden met:
$ helm repo list
NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts
Toevoegen van een nieuwe repo kan bijvoorbeeld met:
$ helm repo add myrepo http://www.digitalinfo.nl/charts $ helm repo add arm-stable https://peterhuene.github.io/arm-charts/stable
Eigen charts maken
Aanmaken van eigen charts kan gedaan worden met:
$ helm create mychart
Dit zal een directory aanmaken met de templates om een nieuwe chart te maken. Raadpleeg de Chart Development Guide voor informatie hierover.
Als de chart gereed is om geïnstalleerd te worden dient er een pakketje van gemaakt te worden met. Controle en packagen:
$ helm lint $ helm package mychart
en vervolgens installeren met
$ helm install ./mychart.tgz