2017-11-21 22:52:25 +00:00
---
title: Install Service Catalog using Helm
2018-02-18 19:29:37 +00:00
reviewers:
2017-11-21 22:52:25 +00:00
- chenopis
2018-05-05 16:00:51 +00:00
content_template: templates/task
2017-11-21 22:52:25 +00:00
---
2018-05-05 16:00:51 +00:00
{{% capture overview %}}
{{< glossary_definition term_id = "service-catalog" length = "all" prepend = "Service Catalog is" > }}
2017-11-21 22:52:25 +00:00
2019-11-25 13:04:19 +00:00
Use [Helm ](https://helm.sh/ ) to install Service Catalog on your Kubernetes cluster. Up to date information on this process can be found at the [kubernetes-sigs/service-catalog ](https://github.com/kubernetes-sigs/service-catalog/blob/master/docs/install.md ) repo.
2017-11-21 22:52:25 +00:00
2018-05-05 16:00:51 +00:00
{{% /capture %}}
2017-11-21 22:52:25 +00:00
2018-05-05 16:00:51 +00:00
{{% capture prerequisites %}}
2017-11-21 22:52:25 +00:00
* Understand the key concepts of [Service Catalog ](/docs/concepts/service-catalog/ ).
* Service Catalog requires a Kubernetes cluster running version 1.7 or higher.
* You must have a Kubernetes cluster with cluster DNS enabled.
2018-05-05 16:00:51 +00:00
* If you are using a cloud-based Kubernetes cluster or {{< glossary_tooltip text = "Minikube" term_id = "minikube" > }}, you may already have cluster DNS enabled.
2017-11-21 22:52:25 +00:00
* If you are using `hack/local-up-cluster.sh` , ensure that the `KUBE_ENABLE_CLUSTER_DNS` environment variable is set, then run the install script.
2019-03-20 23:05:05 +00:00
* [Install and setup kubectl ](/docs/tasks/tools/install-kubectl/ ) v1.7 or higher. Make sure it is configured to connect to the Kubernetes cluster.
2017-11-21 22:52:25 +00:00
* Install [Helm ](http://helm.sh/ ) v2.7.0 or newer.
2019-11-21 02:11:28 +00:00
* Follow the [Helm install instructions ](https://helm.sh/docs/intro/install/ ).
2017-11-21 22:52:25 +00:00
* If you already have an appropriate version of Helm installed, execute `helm init` to install Tiller, the server-side component of Helm.
2018-05-05 16:00:51 +00:00
{{% /capture %}}
2017-11-21 22:52:25 +00:00
2018-05-05 16:00:51 +00:00
{{% capture steps %}}
2017-11-21 22:52:25 +00:00
## Add the service-catalog Helm repository
Once Helm is installed, add the *service-catalog* Helm repository to your local machine by executing the following command:
```shell
helm repo add svc-cat https://svc-catalog-charts.storage.googleapis.com
```
Check to make sure that it installed successfully by executing the following command:
```shell
helm search service-catalog
```
If the installation was successful, the command should output the following:
```
2019-11-13 20:21:25 +00:00
NAME CHART VERSION APP VERSION DESCRIPTION
svc-cat/catalog 0.2.1 service-catalog API server and controller-manager helm chart
svc-cat/catalog-v0.2 0.2.2 service-catalog API server and controller-manager helm chart
2017-11-21 22:52:25 +00:00
```
## Enable RBAC
Your Kubernetes cluster must have RBAC enabled, which requires your Tiller Pod(s) to have `cluster-admin` access.
2019-02-27 17:10:29 +00:00
When using Minikube v0.25 or older, you must run Minikube with RBAC explicitly enabled:
2017-11-21 22:52:25 +00:00
```shell
minikube start --extra-config=apiserver.Authorization.Mode=RBAC
```
2019-02-27 17:10:29 +00:00
When using Minikube v0.26+, run:
```shell
minikube start
```
With Minikube v0.26+, do not specify `--extra-config` . The flag has since been changed to --extra-config=apiserver.authorization-mode and Minikube now uses RBAC by default. Specifying the older flag may cause the start command to hang.
2017-11-21 22:52:25 +00:00
If you are using `hack/local-up-cluster.sh` , set the `AUTHORIZATION_MODE` environment variable with the following values:
```
AUTHORIZATION_MODE=Node,RBAC hack/local-up-cluster.sh -O
```
By default, `helm init` installs the Tiller Pod into the `kube-system` namespace, with Tiller configured to use the `default` service account.
2018-05-05 16:00:51 +00:00
{{< note > }}
2018-11-06 19:33:04 +00:00
If you used the `--tiller-namespace` or `--service-account` flags when running `helm init` , the `--serviceaccount` flag in the following command needs to be adjusted to reference the appropriate namespace and ServiceAccount name.
2018-05-05 16:00:51 +00:00
{{< / note > }}
2017-11-21 22:52:25 +00:00
Configure Tiller to have `cluster-admin` access:
```shell
kubectl create clusterrolebinding tiller-cluster-admin \
--clusterrole=cluster-admin \
--serviceaccount=kube-system:default
```
## Install Service Catalog in your Kubernetes cluster
Install Service Catalog from the root of the Helm repository using the following command:
2020-01-03 17:35:40 +00:00
{{< tabs name = "helm-versions" > }}
{{% tab name="Helm version 3" %}}
2017-11-21 22:52:25 +00:00
```shell
2020-01-03 17:35:40 +00:00
helm install catalog svc-cat/catalog --namespace catalog
2017-11-21 22:52:25 +00:00
```
2020-01-03 17:35:40 +00:00
{{% /tab %}}
{{% tab name="Helm version 2" %}}
```shell
helm install svc-cat/catalog --name catalog --namespace catalog
```
{{% /tab %}}
{{< / tabs > }}
2018-05-05 16:00:51 +00:00
{{% /capture %}}
2017-11-21 22:52:25 +00:00
2018-05-05 16:00:51 +00:00
{{% capture whatsnext %}}
2017-11-21 22:52:25 +00:00
* View [sample service brokers ](https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md#sample-service-brokers ).
2019-11-25 13:04:19 +00:00
* Explore the [kubernetes-sigs/service-catalog ](https://github.com/kubernetes-sigs/service-catalog ) project.
2017-11-21 22:52:25 +00:00
2018-05-05 16:00:51 +00:00
{{% /capture %}}