Set up Helm
Lightbend Console is provided as a Helm Chart. The first part of this page provides a quick start guide for installing Helm 3. Refer to the official Helm install guide for greater detail.
Helm 3 has rather significant changes compared to Helm 2, such as no longer requiring Tiller. See the section below to set up Helm 2.
If you have previously installed Console using Helm 2 then you must follow the guide on how to migrate from Helm 2 to 3.
As with all migrations there is some risk involved. Please read the helm-2to3 readme before migration guide so that you are well prepared should anything go wrong.
The migration guide will instruct you to install both Helm 2 and Helm 3. It is not necessary to keep Helm 2 in order to follow that guide. You can upgrade Helm using whatever means you like, such as via your package manager.
If you do not keep Helm 2 then you can emulate the helm list
command for Helm 2 using kubectl
:
kubectl get configmap --namespace="${TILLER_NAMESPACE}" --selector="OWNER=TILLER"
kubectl get configmap --namespace="${TILLER_NAMESPACE}" --selector="OWNER=TILLER" --output=json
For more information, refer to this blog on how Helm uses ConfigMaps to store data.
Installing the Helm client
Install on OS X using homebrew
or on Ubuntu 16.04 or higher using curl
:
- OS X
-
brew install helm
- Ubuntu 16.04+
-
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 >get_helm.sh chmod 700 ./get_helm.sh sudo ./get_helm.sh
Helm 2
Set up Helm 2
Helm 2 is made up of two parts, a client and a server called Tiller. Some organizations do not allow Tiller to be installed because of security concerns, in which case you can install the Console without Tiller or install Helm 3. The client is still required. Whether using Tiller or just the client, you need to install Helm before setting up the Console.
We require that the Tiller has the ability to create cluster RBAC roles. This usually requires cluster-admin
privileges. This is to create the read-only roles needed by Console (see RBAC for more details). If desired, the cluster-admin
privilege can be removed once Console is installed.
The rest of this page provides a quick start guide for installing Helm 2 and Tiller. Refer to the official legacy Helm install guide for greater detail.
Some of the packages and URLs in the official install guide for Helm 2 will now refer to Helm 3. See below for suitable alternatives.
Installing the Helm 2 client
Install on OS X using homebrew
or on Ubuntu 16.04 or higher using curl
:
- OS X
-
brew install helm@2 # Take note of the caveats in the previous formulae. # You may want to modify the PATH in the current shell: export PATH="/usr/local/opt/helm@2/bin:$PATH" # Verify that the correct version is found on the PATH: helm version
- Ubuntu 16.04+
-
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm >get_helm2.sh chmod 700 ./get_helm2.sh sudo ./get_helm2.sh
You can also download the Helm 2 binaries from the Helm GitHub releases page.
Initializing Tiller
With a cluster running and the Helm client installed, you can initialize Tiller from the command line.
-
The following commands create a
serviceaccount
and bind the cluster on Kubernetes & Minikube, OpenShift, or Minishift:- Openshift & Minishift
-
export TILLER_NAMESPACE=kube-system oc create serviceaccount --namespace "${TILLER_NAMESPACE}" tiller oc create clusterrolebinding "${TILLER_NAMESPACE}:tiller" --clusterrole=cluster-admin --serviceaccount="${TILLER_NAMESPACE}:tiller" helm init --wait --service-account tiller --tiller-namespace="${TILLER_NAMESPACE}"
- Kubernetes & Minikube
-
TILLER_NAMESPACE=kube-system kubectl create serviceaccount --namespace "${TILLER_NAMESPACE}" tiller kubectl create clusterrolebinding "${TILLER_NAMESPACE}:tiller" --clusterrole=cluster-admin --serviceaccount="${TILLER_NAMESPACE}:tiller" helm init --wait --service-account tiller --tiller-namespace="${TILLER_NAMESPACE}"
-
Verify that the client and server versions match:
helm version
If the
Client
is older than theServer
then either upgrade the Helm client or downgrade the server by running:helm init --force-upgrade
WarningBe careful when upgrading the Helm client that you do not accidentally go from Helm 2 to Helm 3 otherwise you have to follow the migration guide above.
If the
Server
is older than theClient
then upgrade the server:helm init --upgrade