What is Helm?
Before going into details: helm is a self-proclaimed "Kubernetes Package Manager". While this is not entirly false in my opinion it is three things- a package manager for chart repos
- a Kubernetes API automation tool
- a Kubernetes resource abstraction helper
Current Installation Issues
Since kubernetes v1.6.1, which introduced RBAC (role based access control) it became harder to properly install helm. Actually the simple installation as suggested on the homepage# Download and... helm initseems to work, but as soon as you run commands like
helm listyou get permission errors. This of course being caused by the tighter access control now being in place. Sadly even now being at kubernetes 1.8 helm still wasn't updated to take care of the proper permissions.
Openshift to the rescue...
As Redhat somewhat pioneered RBAC in Openshift with their namespace based "projects" concept they are also the ones with a good solution for the helm RBAC troubles.Setting up Helm on Openshift
Client installation (helm)
curl -s https://storage.googleapis.com/kubernetes-helm/helm-v2.6.1-linux-amd64.tar.gz | tar xz sudo mv linux-amd64/helm /usr/local/bin sudo chmod a+x /usr/local/bin/helm helm init --client-only
Server installation (tiller)
With helm being the client only, Helm needs an agent named "tiller" on the kubernetes cluster. Therefore we create a project (namespace) for this agent an install it with "oc create"export TILLER_NAMESPACE=tiller oc new-project tiller oc project tiller oc process -f https://github.com/openshift/origin/raw/master/examples/helm/tiller-template.yaml -p TILLER_NAMESPACE="${TILLER_NAMESPACE}" | oc create -f - oc rollout status deployment tiller
Preparing your projects (namespaces)
Finally you have to give tiller access to each of the namespaces you want someone to manage using helm:export TILLER_NAMESPACE=tiller oc projectAfter you did this you can deploy your first service, e.g.oc policy add-role-to-user edit "system:serviceaccount:${TILLER_NAMESPACE}:tiller"
helm install stable/redis --namespace
See also