Installing helm on MiniShift

Posted by: Seth Lakowske

Published:

Installing Helm on MiniShift requires a little extra effort compared to Minikube.

Requirements

Run Helm using Minishift

Start Minishift with a generous helping of resources if you run large work loads. For me that means running 4 cpus, 8 GB of RAM and 100 GB Storage.
minishift start --vm-driver virtualbox --cpus 4 --memory 8GB --disk-size 100GB
Login as admin.
oc login -u system:admin
Create a service account for helm.
kubectl create sa helm -n kube-system
Give it cluster-admin priviliges, which should be okay in this case because we are on a local development cluster. On a production cluster, more restrictions is likely appropriate.
kubectl create clusterrolebinding helm-admin --clusterrole=cluster-admin --serviceaccount=kube-system:helm
Start tiller on the cluster using the helm service account.
helm init --service-account helm
Expose tiller service to the outside world using a NodePort
kubectl expose deployment/tiller-deploy --target-port=tiller --type=NodePort --name=tiller -n kube-system
Tell helm where the random tiller NodePort lives
export HELM_HOST="$(minishift ip):$(oc get svc/tiller -o jsonpath='{.spec.ports[0].nodePort}' -n kube-system --as=system:admin)"

Install kubernetes-dashboard chart

Installs the dashboard using the helm service account that was created earlier. This gives the dashboard cluster-admin priviliges.
helm install stable/kubernetes-dashboard --set serviceAccount.name=helm --set serviceAccount.create=false --namespace kube-system --name hi
Expose the dashboard service.
kubectl expose deployment/hi-kubernetes-dashboard --type=NodePort --name=dash -n kube-system