Files
website/docs/tasks/service-catalog/install-service-catalog-using-helm.md
Andrew Chen bb0d2771c4 Service Catalog docs (#5867)
* Service Catalog docs (+16 squashed commits)
Squashed commits:
[765e81d] rework install-service-catalog.md
[d81f799] tweak diagrams
[b7a3da7] Add tooltips
[3b256c5] more rework
[828000e] architecture diagram redux
[0b809d5] rework
[7829301] Outline provision-bind-external-service.md w/ filler text
[144fbb3] install service catalog v1
[47b5be4] Reorder images and bullet points
[fb577ae] Update What's Next links
[8ac984c] Include snippet for install and provision docs
[c2eeece] Add Install Service Catalog doc
[a84df64] Add hard line break
[7fb12c6] Add task
[75c46d3] Add List, Provision, and Bind diagrams
[6386feb] Service Catalog concept doc

* Add install-service-catalog-using-helm

* switch mysql examples to message queuing instead

* Incorporate feedback

* incorporate additional feedback

* Incorporate tech review feedback
2017-11-21 14:52:25 -08:00

3.7 KiB

title, approvers
title approvers
Install Service Catalog using Helm
chenopis

{% capture overview %} {% glossary_definition term_id="service-catalog" length="long" %}

Use Helm to install Service Catalog on your Kubernetes cluster. Up to date information on this process can be found at the kubernetes-incubator/service-catalog repo.

{% endcapture %}

{% capture prerequisites %}

  • Understand the key concepts of Service Catalog.
  • Service Catalog requires a Kubernetes cluster running version 1.7 or higher.
  • You must have a Kubernetes cluster with cluster DNS enabled.
    • If you are using a cloud-based Kubernetes cluster or {% glossary_tooltip text="Minikube" term_id="minikube" %}, you may already have cluster DNS enabled.
    • 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.
  • Install and setup kubectl v1.7 or higher. Make sure it is configured to connect to the Kubernetes cluster.
  • Install Helm v2.7.0 or newer.
    • Follow the Helm install instructions.
    • If you already have an appropriate version of Helm installed, execute helm init to install Tiller, the server-side component of Helm.

{% endcapture %}

{% capture steps %}

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:

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:

helm search service-catalog

If the installation was successful, the command should output the following:

NAME            VERSION DESCRIPTION
svc-cat/catalog 0.0.1   service-catalog API server and controller-manag...

Enable RBAC

Your Kubernetes cluster must have RBAC enabled, which requires your Tiller Pod(s) to have cluster-admin access.

If you are using {% glossary_tooltip text="Minikube" term_id="minikube" %}, run the minikube start command with the following flag:

minikube start --extra-config=apiserver.Authorization.Mode=RBAC

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.

NOTE: 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. {: .note}

Configure Tiller to have cluster-admin access:

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:

helm install svc-cat/catalog \
    --name catalog --namespace catalog

{% endcapture %}

{% capture whatsnext %}

{% endcapture %}

{% include templates/task.md %}