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

Splitting up the Walkthrough for 1.6 and 1.7 instructions #1163

Merged
merged 22 commits into from
Aug 29, 2017

Conversation

arschles
Copy link
Contributor

@arschles arschles commented Aug 28, 2017

As discussed, we will provide installation and walkthrough documents for both 1.6 (and prior) and 1.7 (and later) clusters. However, we will deprecate the 1.6 documents. I've done that here.

I've also split the walkthrough documents apart. For each Kubernetes version, I've provided an installation document and a walkthrough document.

Finally, I've moved the docs/api-aggregation-setup.md file into the installation guide for 1.7, and re-structured it to match the structure of the installation guide for 1.6.

There is still work to follow-up on from this PR. This is a step in the right direction, and will improve on the current state of the world. @jboyd01 and I intend to move forward with follow-ups to further improve our install & walkthrough docs.

This patch replaces #1005 (which is now closed). I'd like to complete the 1.7 instructions (which are currently a TODO in this patch) in a follow-up.

cc/ @jboyd01, who is also interested in working on 1.7 install/walkthrough instructions.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Aug 28, 2017
@arschles arschles requested a review from MHBauer August 28, 2017 21:31
@k8s-ci-robot k8s-ci-robot added the size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. label Aug 28, 2017
@@ -1,4 +1,4 @@
## Walkthrough Resources

This directory contains API resources for use with the [demo
walkthrough](../../../docs/walkthrough.md).
walkthrough](../../../docs/introduction.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

I think linking to the introduction doc here is a bit misleading; the new structure of the docs has the core of the walkthrough separated to its own doc(s), with the intro being much larger in scope. I would instead link to the 1.7 walkthrough doc (since the 1.6 one is deprecated, it's unambiguous).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@kibbles-n-bytes I updated the language around the link. I want people to go to the intro doc so they can choose whether they want to install or do the demo.

docs/devguide.md Outdated
@@ -266,5 +266,5 @@ the Kubernetes cluster as third party resources.

## Demo walkthrough

Check out the [walk-through](walkthrough.md) for a detailed guide of an example
Check out the [introduction](./introduction.md) for a detailed guide of an example
Copy link
Contributor

Choose a reason for hiding this comment

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

Similar to the comment from the walkthrough/README.md; I would link to the 1.7 walkthrough doc here, and then have a separate little sub-section above here for the intro.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As with #1163 (comment), I updated the language around this link because I want to funnel people through the intro doc.

@@ -0,0 +1,164 @@
# Installing Service Catalog on Clusters Running Kubernetes 1.7 and Above
Copy link
Contributor

Choose a reason for hiding this comment

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

Kubernetes 1.7 and Above -> Kubernetes 1.6

@@ -123,7 +142,7 @@ export SC_SERVING_CERT=apiserver.pem
export SC_SERVING_KEY=apiserver-key.pem
```

## Get the appropriate tls ca/cert/key from kube
## Get the Appropriate TLA CA, Certificate and Key from Kubernetes
Copy link
Contributor

Choose a reason for hiding this comment

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

TLA->TLS

maintained and we do not recommend using them to run a production installation
of Service Catalog.

## Kubernetes 1.6 and Below (Deprecated)
Copy link
Contributor

Choose a reason for hiding this comment

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

Since this is deprecated, I'd put it below the 1.7 section.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

This document assumes that you've installed Service Catalog onto your cluster.
If you haven't, please see [install-1.7.md](./install-1.7.md).

TODO
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd write here that they should be looking at the 1.6 walkthrough doc, and link to it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The 1.6 doc won't work for them, so they shouldn't look there.

Copy link
Contributor

Choose a reason for hiding this comment

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

Does the walkthrough not work at all? Or is it just that the service catalog is behind the aggregator, so there is no "service-catalog" k8s context. If the latter, it seems misleading to basically send the reader to a dead end.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Correct, there is no service-catalog k8s context. It doesn't work at all.

@jboyd01 and I are going to follow-up immediately after this PR to fill in this section.

maintained and we do not recommend using them to run a production installation
of Service Catalog.

## Kubernetes 1.6 and Below (Deprecated)
Copy link
Contributor

Choose a reason for hiding this comment

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

Same comment about "and Below"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

@@ -0,0 +1,164 @@
# Installing Service Catalog on Clusters Running Kubernetes 1.7 and Above
Copy link
Contributor

Choose a reason for hiding this comment

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

Is the "1.6 and Below" aspect true? Does the service catalog currently work on versions below 1.6? I would call a hard line at 1.6 just to avoid any issues.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I changed to just 1.6 - you're right that 1.5 is a no-go.

Copy link
Contributor

@jboyd01 jboyd01 left a comment

Choose a reason for hiding this comment

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

This looks like the right direction to head in, we need to make additional passes in the walkthrough(s) to fix up some naming (Binding vs ServiceInstanceCredentials etc). I've got notes and will make a pass through at that once this is merged.

@@ -0,0 +1,165 @@
# Installing Service Catalog on Clusters Running Kubernetes 1.6
Copy link
Contributor

Choose a reason for hiding this comment

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

I know the next paragraph states 1.6 is deprecated, I'd suggest adding (DEPRECATED) or something to the title above

and go inside the cluster, and register themselves on demand to augment the
externally facing API that kubernetes offers.

Instead of running multiple API servers on different ports, API aggregation
Copy link
Contributor

Choose a reason for hiding this comment

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

"Instead of running multiple API servers on different ports" - - we still run multiple API servers on different ports, but aggregation enables a single point of entry for administration, right? ie might reword to indicate benefit is to admins with only needing to interact with the primary kube api server.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done

please check [the auth doc](auth.md).
```console
mkdir certs
```
Copy link
Contributor

Choose a reason for hiding this comment

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

do we want to change dir to there now? The original steps below don't cd and copy certs to the current directory (root of the SC source for me)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Probably, but I haven't fully tested these instructions (I forked them and made changes there). I'd just like to get them into the right file for now and then improve in follow-ups. Cool with you?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I ended up addressing this after all


```shell
source /contrib/svc-cat-apiserver-aggregation-tls-setup.sh
source ./contrib/svc-cat-apiserver-aggregation-tls-setup.sh
```
Copy link
Contributor

Choose a reason for hiding this comment

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

We don't really want to run this script as it would overwrite any custom certs the user copied from their cloud environment as detailed in the steps above. I believe all the steps above around the certs and TLS are executed with defaults by the svc-cat-apiserver-aggregation-tls-setup.sh script. I realize this content was not added by his PR, but at some point this summary should be removed or replaced with an accurate summary.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I agree. I'd just like to get this content into the right place for now and then improve in follow-ups. Cool with you?

Copy link
Contributor

Choose a reason for hiding this comment

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

You're in the docs, why not fix them now?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I will fix them, I just want to keep this PR's scope down as much as possible (it's already big).

@arschles
Copy link
Contributor Author

arschles commented Aug 29, 2017

Thanks @jboyd01. Is it cool with you if I address your changes in an immediate follow-up?

Follow-up: I ended up addressing these comments in this PR after all

For 1.6 and 1.7 instructions
Copy link
Contributor

@MHBauer MHBauer left a comment

Choose a reason for hiding this comment

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

Reading the commit log makes this all seem disconnected, but all the links I checked seem to work and I think I understand the flow of a user encounter.

README.md Outdated
@@ -40,6 +40,9 @@ _somewhere_ in a simple way:
application configuration primitives in Kubernetes: Services, Secrets, and
ConfigMaps.

For more introduction, installation and self-guided demo instructions, please
Copy link
Contributor

Choose a reason for hiding this comment

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

remove 'more'. this is the first mention of instructions here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

But this line is under the "Introduction" section of the readme.

Copy link
Contributor

Choose a reason for hiding this comment

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

ah okay, "For more introduction, including installation and self-guided demo instructions, ..."

`KUBE_ENABLE_CLUSTER_DNS` environment variable is set as follows:

```console
hack/local-up-cluster.sh -O
Copy link
Contributor

Choose a reason for hiding this comment

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

What does -O do? Is it going to print something? Can we get example output included?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have no idea; I barely ever use local-up. I copied this from the 1.6 walkthrough

Copy link
Contributor

Choose a reason for hiding this comment

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

Example 2: hack/local-up-cluster.sh -O (auto-guess the bin path for your platform). The alternative being to specify the path with -o or no args and have it rebuild. I doubt you want to include example output, it's quite long.

Copy link
Contributor

Choose a reason for hiding this comment

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

Then that example makes even less sense.

How about :
KUBE_ENABLE_CLUSTER_DNS=true hack/local-up-cluster.sh -O

Is DNS enabled by default now? Maybe we can just remove the mention of it in the text above the console output, at which point we don't need that either.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I'll add the env var into the command. Can we address the rest of this in a follow-up please?

instructions here for enabling cluster DNS for all Kubernetes cluster
installations, but here are a few notes:
This document assumes that you've installed Service Catalog onto your cluster.
If you haven't, please see [install-1.6.md](./install-1.6.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

clean up the link text here and above to be something like "the installation instructions for v1.X"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

The service catalog is packaged as a Helm chart located in the
[charts/catalog](../charts/catalog) directory in this repository, and supports a
wide variety of customizations which are detailed in that directory's
[README.md](https://github.com/kubernetes-incubator/service-catalog/blob/master/charts/catalog/README.md).
Copy link
Contributor

Choose a reason for hiding this comment

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

relative link vs whole link here? Should go to almost the same place as the link two lines above, right?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yep. I'll change it to a relative link.


1. Etcd 3
2. Third Party Resources (also, known as TPRs) - this is an _alpha_ feature
right now. It has known issues and may be removed at any time
Copy link
Contributor

Choose a reason for hiding this comment

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

Add period at end of sentence.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done


This is an example. It is written with zero understanding of the best
practices of secure certificate generation.
Copy link
Contributor

Choose a reason for hiding this comment

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

@duglin will like this.

@@ -123,7 +144,7 @@ export SC_SERVING_CERT=apiserver.pem
export SC_SERVING_KEY=apiserver-key.pem
```

## Get the appropriate tls ca/cert/key from kube
## Get the Appropriate TLS CA, Certificate and Key from Kubernetes
Copy link
Contributor

Choose a reason for hiding this comment

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

The heading levels might need to be adjusted, this was supposed to be a peer with the "generate the Cert Bundle" part, as it is an alternative and both should not be done at the same time.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I put the two options under the same heading

@@ -1,17 +1,28 @@
# Installing Service Catalog on Clusters Running Kubernetes 1.7 and Above
Copy link
Contributor

Choose a reason for hiding this comment

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

Overall this feels more like the api-aggregation doc than a 1.7 install doc. Maybe we can just have the final "helm command" and link to a separate place where the cert stuff is described.

Copy link
Contributor

Choose a reason for hiding this comment

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

script run + helm command seems simplest to me.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

Copy link
Contributor

Choose a reason for hiding this comment

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

AWW YEA!


```shell
source /contrib/svc-cat-apiserver-aggregation-tls-setup.sh
source ./contrib/svc-cat-apiserver-aggregation-tls-setup.sh
```
Copy link
Contributor

Choose a reason for hiding this comment

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

You're in the docs, why not fix them now?

## Kubernetes 1.7 and Above

- [Installation instructions](./install-1.7.md)
- [Demo instructions](./walkthrough-1.7.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

Leave this link off as the document is a dead end. Or have that document link back here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I left a note that this doc is a WIP

@arschles
Copy link
Contributor Author

@MHBauer I've addressed your comments. Can you PTAL?

Copy link
Contributor

@vaikas vaikas left a comment

Choose a reason for hiding this comment

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

There's a few things that I'd consider nits, I like the breaking of the documents, it's an improvement and we can make smaller fixes after we merge this more easily.

externally facing API that kubernetes offers.

Instead of requiring the end-user to access multiple API servers, the API
aggregation system allows many servers to run inside the cluster, and combines
Copy link
Contributor

Choose a reason for hiding this comment

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

nit:
s/many servers/many API servers/

Copy link
Contributor Author

Choose a reason for hiding this comment

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

done

@vaikas vaikas added the LGTM1 label Aug 29, 2017
Copy link
Contributor

@MHBauer MHBauer left a comment

Choose a reason for hiding this comment

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

the hack local up thing, otherwise looking good.

README.md Outdated
@@ -40,6 +40,9 @@ _somewhere_ in a simple way:
application configuration primitives in Kubernetes: Services, Secrets, and
ConfigMaps.

For more introduction, installation and self-guided demo instructions, please
Copy link
Contributor

Choose a reason for hiding this comment

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

ah okay, "For more introduction, including installation and self-guided demo instructions, ..."

`KUBE_ENABLE_CLUSTER_DNS` environment variable is set as follows:

```console
hack/local-up-cluster.sh -O
Copy link
Contributor

Choose a reason for hiding this comment

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

Then that example makes even less sense.

How about :
KUBE_ENABLE_CLUSTER_DNS=true hack/local-up-cluster.sh -O

Is DNS enabled by default now? Maybe we can just remove the mention of it in the text above the console output, at which point we don't need that either.

## Helm

You *must* use [Helm](http://helm.sh/) v2 or newer in the installation steps
below.
Copy link
Contributor

Choose a reason for hiding this comment

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

Anything in the minor releases of helm we need? I thought there was something in 2.3 or so that was needed. Cannot remember what.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I recall that, yes. I'll try to find out and address it in a follow-up

@@ -1,17 +1,28 @@
# Installing Service Catalog on Clusters Running Kubernetes 1.7 and Above
Copy link
Contributor

Choose a reason for hiding this comment

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

AWW YEA!

## Kubernetes 1.7 and Above

- [Installation instructions](./install-1.7.md)
- [Demo instructions](./walkthrough-1.7.md) (this is a work in progress)
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm okay with this.

Copy link
Contributor

@MHBauer MHBauer left a comment

Choose a reason for hiding this comment

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

LGTM

@MHBauer MHBauer added the LGTM2 label Aug 29, 2017
Copy link
Contributor

@pmorie pmorie left a comment

Choose a reason for hiding this comment

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

Big medicine. I have a few suggestions/nits. The only big thing is that the 1.7 walkthrough needs to either have all the walkthrough content tailored for 1.7, or somehow give the correct commands to run.

@@ -20,3 +20,4 @@ contrib/build/*/tmp/*
.pkg
.kube
.var
docs/certs
Copy link
Contributor

Choose a reason for hiding this comment

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

Path looks weird, but whatever

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yea, the install directions for 1.7 in this PR are tailored toward operating the install out of this directory. can change it in a follow-up if needed


This is an example. It is written with zero understanding of the best
practices of secure certificate generation.
The certificate bundle is made up of Certificate Authority, a Serving
Copy link
Contributor

Choose a reason for hiding this comment

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

of a Certificate Authority

Copy link
Contributor Author

@arschles arschles Aug 29, 2017

Choose a reason for hiding this comment

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

done

update: I made this change after the PR was merged. Addressed in #1169


This document outlines the basic features of the service catalog by walking
through a short demo.

## Step 0 - Prerequisites
This document contains instructions for a self-guided demo of the Service
Copy link
Contributor

Choose a reason for hiding this comment

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

Might want to put a bold NOTE here or something.

Copy link
Contributor Author

@arschles arschles Aug 29, 2017

Choose a reason for hiding this comment

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

done

update: I made this change after the PR was merged. Addressed in #1169

@@ -381,7 +204,7 @@ status:
type: Ready
```

## Step 9 - ServiceInstanceCredential to the ServiceInstance
# Step 5 - ServiceInstanceCredential to the ServiceInstance
Copy link
Contributor

Choose a reason for hiding this comment

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

This reads awkwardly - how about 'Requesting a ServiceInstanceCredential to use the ServiceInstance`? As-is, doesn't read quite right to me.

Copy link
Contributor Author

@arschles arschles Aug 29, 2017

Choose a reason for hiding this comment

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

Good catch - thanks @pmorie. Will do in a follow-up

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done in #1169

@@ -454,7 +277,7 @@ ups-instance-credential Opaque 2

Notice that a new `Secret` named `ups-instance-credential` has been created.

## Step 10 - Unbinding from the ServiceInstance
# Step 6 - Unbinding from the ServiceInstance
Copy link
Contributor

Choose a reason for hiding this comment

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

We should probably not call this unbinding anymore. How about 'delete the ServiceInstanceCredential', and update the language to be something like 'Imagine we're done using this service instance. We need to delete the credentials we requested earlier.'

Copy link
Contributor Author

@arschles arschles Aug 29, 2017

Choose a reason for hiding this comment

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

done

update: I made this change after the PR was merged. Addressed in #1169

This document assumes that you've installed Service Catalog onto your cluster.
If you haven't, please see [install-1.7.md](./install-1.7.md).

This document is a work in progress. Instructions for the self-guided demo
Copy link
Contributor

Choose a reason for hiding this comment

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

I think we should either:

  • duplicate the walkthrough content here, and only maintain both until the beta
  • expand significantly on the commands to use

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I already wrote in the 1.6 walkthrough that it's deprecated and may be removed at any time. In a follow-up, I am going to duplicate the existing walkthrough and expand on it. Does that address your concern @pmorie?

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, that does, thanks.

@pmorie
Copy link
Contributor

pmorie commented Aug 29, 2017

I see that this already has LGTM2, and I won't block it merging, but I would like to have my comments addressed ASAP in a follow-up.

@pmorie pmorie merged commit 43f7cfb into kubernetes-retired:master Aug 29, 2017
arschles added a commit to arschles/kubernetes-service-catalog that referenced this pull request Aug 29, 2017
minikube start --extra-config=apiserver.Authorization.Mode=RBAC
```

AssumingBy default, `helm init` installs the Tiller pod into the `kube-system`
Copy link
Contributor

Choose a reason for hiding this comment

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

@arschles "AssumingBy" typo?

duglin pushed a commit that referenced this pull request Aug 30, 2017
* Specifying that you need Helm v2.5.0 for installation

This is a follow-up to
#1163 (comment)
sion_r135920291

Cc/ @MHBauer

* Reducing Helm version redundancy
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. LGTM1 LGTM2 size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants