Skip to content
This repository has been archived by the owner on May 6, 2022. It is now read-only.

Update minikube start docs #2365

Merged
merged 3 commits into from
Sep 28, 2018
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 24 additions & 20 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ Kubernetes 1.9 or higher clusters run the
[API Aggregator](https://kubernetes.io/docs/concepts/api-extension/apiserver-aggregation/),
which is a specialized proxy server that sits in front of the core API Server.

Service Catalog provides an API server that sits behind the API aggregator,
Service Catalog provides an API server that sits behind the API aggregator,
so you'll be using `kubectl` as normal to interact with Service Catalog.

To learn more about API aggregation, please see the
To learn more about API aggregation, please see the
[Kubernetes documentation](https://kubernetes.io/docs/concepts/api-extension/apiserver-aggregation/).

The rest of this document details how to:
Expand All @@ -22,16 +22,16 @@ The rest of this document details how to:

## Kubernetes Version

Service Catalog requires a Kubernetes cluster v1.9 or later. You'll also need a
[Kubernetes configuration file](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)
installed on your host. You need this file so you can use `kubectl` and
[`helm`](https://helm.sh) to communicate with the cluster. Many Kubernetes installation
Service Catalog requires a Kubernetes cluster v1.9 or later. You'll also need a
[Kubernetes configuration file](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)
installed on your host. You need this file so you can use `kubectl` and
[`helm`](https://helm.sh) to communicate with the cluster. Many Kubernetes installation
tools and/or cloud providers will set this configuration file up for you. Please
check with your tool or provider for details.

### `kubectl` Version

Most interaction with the service catalog system is achieved through the
Most interaction with the service catalog system is achieved through the
`kubectl` command line interface. As with the cluster version, Service Catalog
requires `kubectl` version 1.9 or newer.

Expand All @@ -43,8 +43,8 @@ kubectl version

Ensure that the server version and client versions are both `1.9` or above.

If you need to upgrade your client, follow the
[installation instructions](https://kubernetes.io/docs/tasks/kubectl/install/)
If you need to upgrade your client, follow the
[installation instructions](https://kubernetes.io/docs/tasks/kubectl/install/)
to get a new `kubectl` binary.

For example, run the following command to get an up-to-date binary on Mac OS:
Expand Down Expand Up @@ -75,7 +75,7 @@ v2.7.0 or newer for that. See the steps below to install.

### If You Don't Have Helm Installed

If you don't have Helm installed already,
If you don't have Helm installed already,
[download the `helm` CLI](https://github.com/kubernetes/helm#install) and
then run `helm init` (this installs Tiller, the server-side component of
Helm, into your Kubernetes cluster).
Expand All @@ -85,16 +85,16 @@ Helm, into your Kubernetes cluster).
If you already have Helm installed, run `helm version` and ensure that both
the client and server versions are `v2.7.0` or above.

If they aren't,
If they aren't,
[install a newer version of the `helm` CLI](https://github.com/kubernetes/helm#install)
and run `helm init --upgrade`.
and run `helm init --upgrade`.

For more details on installation, see the
[Helm installation instructions](https://github.com/kubernetes/helm/blob/master/docs/install.md).

### Tiller Permissions

Tiller is the in-cluster server component of Helm. By default,
Tiller is the in-cluster server component of Helm. By default,
`helm init` installs the Tiller pod into the `kube-system` namespace,
and configures Tiller to use the `default` service account.

Expand All @@ -109,7 +109,7 @@ kubectl create clusterrolebinding tiller-cluster-admin \

## Helm Repository Setup

Service Catalog is easily installed via a
Service Catalog is easily installed via a
[Helm chart](https://github.com/kubernetes/helm/blob/master/docs/charts.md).

This chart is located in a
Expand All @@ -135,23 +135,27 @@ svc-cat/catalog x,y.z service-catalog API server and controller-manag...

## RBAC

Your Kubernetes cluster must have
Your Kubernetes cluster must have
[RBAC](https://kubernetes.io/docs/admin/authorization/rbac/) enabled to use
Service Catalog.

Like in-cluster DNS, many installation methods should enable RBAC for you.

### Minikube

If you are using Minikube, start your cluster with this command:
If you are using Minikube (v0.25+), start your cluster with this command:

```console
minikube start --extra-config=apiserver.Authorization.Mode=RBAC
minikube start ----bootstrapper=kubeadm --extra-config=apiserver.authorization-mode=RBAC
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to kubernetes/minikube#1722 (comment) minikube enables RBAC by default as of v0.26.0

Additionally, my read on this for syntax: If you are using minikube versions v25.2 or older you need to use the old syntax --extra-config=apiserver.Authorization.Mode=RBAC but if you are using newer version (ie V26.0 or newer), you need to specify --extra-config=apiserver.authorization-mode=RBAC. OR don't specify extra config at all. Those details from kubernetes/minikube#2798 (comment)

I'd rework this to say:
if using Minikube v0.25 or older, you must specify

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

If using v0.26 or newer, do not specify extra-config. Using "--extra-config=apiserver.Authorization.Mode" in v0.26 or greater may result in a hang as the flag has been changed to --extra-config=apiserver.authorization-mode and the default is to use RBAC. Start minikube with

minikube start 

I believe these details are accurate, I'd prefer to specify specific versions and remove the word "you may not need to specify" from the text immediately following this. :)

```

If you are using a more recent version of minikube, kubeadm with RBAC is the
default and you may not need to specify the other flags depending on your
minikube configuration.

### `hack/local-cluster-up.sh`

If you are using the
If you are using the
[`hack/local-up-cluster.sh`](https://github.com/kubernetes/kubernetes/blob/master/hack/local-up-cluster.sh)
script in the Kubernetes core repository, start your cluster with this command:

Expand All @@ -166,7 +170,7 @@ check with your provider's documentation for details.

# Step 2 - Install Service Catalog

Now that your cluster and Helm are configured properly, installing
Now that your cluster and Helm are configured properly, installing
Service Catalog is simple:

```console
Expand All @@ -186,7 +190,7 @@ our canary (master) builds, and tags using the following prefixes:
* Tagged releases: https://download.svcat.sh/cli/VERSION
where `VERSION` is the release, for example `v0.1.20`.
* Canary builds: https://download.svcat.sh/cli/canary
* Previous canary builds: https://download.svcat.sh/cli/VERSION-GITDESCRIBE
* Previous canary builds: https://download.svcat.sh/cli/VERSION-GITDESCRIBE
where `GITDESCRIBE` is the result of calling `git describe --tags`, for example `v0.1.20-1-g203c8ad`.

## MacOS with Homebrew
Expand Down