Skip to content

Helm

Installing Helm:

1
brew install kubernetes-helm

Installing Tiller

Tiller, the server portion of Helm, typically runs inside of your Kubernetes cluster. But for development, it can also be run locally, and configured to talk to a remote Kubernetes cluster.

To find out which cluster Tiller would install to, you can run kubectl config current-context

1
2
$ kubectl config current-context
my-cluster

Once you have Helm ready, you can initialize the local CLI and also install Tiller into your Kubernetes cluster in one step:

1
$ helm init

This will install Tiller into the Kubernetes cluster you saw with kubectl config current-context.

Tip

Want to install into a different cluster? Use the --kube-context flag.

Tip

To upgrade Tiller, just run helm init --upgrade

To make it work in EKS (with RBAC enabled)

Create a file called rbac-config.yaml:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

Apply the config and install tiller in k8s cluster

$ kubectl create -f rbac-config.yaml
serviceaccount "tiller" created
clusterrolebinding "tiller" created
$ helm init --service-account tiller

The above can be done using the following commands

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller --upgrade
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'