From 8596d5aeb7f2ff7d1a22b9d50b91f8d38b6acc7c Mon Sep 17 00:00:00 2001 From: Jeffrey Regan Date: Fri, 6 Apr 2018 12:52:34 -0700 Subject: [PATCH] add tree output to demo --- cmd/kinflate/demo/helloWorld.md | 49 ++++++++++++++++++++++++++------ cmd/kinflate/demo/tree1.png | Bin 0 -> 8738 bytes cmd/kinflate/demo/tree2.png | Bin 0 -> 14442 bytes 3 files changed, 40 insertions(+), 9 deletions(-) create mode 100644 cmd/kinflate/demo/tree1.png create mode 100644 cmd/kinflate/demo/tree2.png diff --git a/cmd/kinflate/demo/helloWorld.md b/cmd/kinflate/demo/helloWorld.md index f1d949bd..a9fd1346 100644 --- a/cmd/kinflate/demo/helloWorld.md +++ b/cmd/kinflate/demo/helloWorld.md @@ -5,7 +5,7 @@ [instance]: ../docs/glossary.md#instance [instances]: ../docs/glossary.md#instance [hello]: https://github.com/monopole/hello -[off-the-shelf config]: https://github.com/kinflate/example-hello +[config]: https://github.com/kinflate/example-hello [original]: https://github.com/kinflate/example-hello # Demo: hello world with instances @@ -34,10 +34,9 @@ Alternatively, use ## Clone an example Let's run the [hello] service. +Here's an existing [config] for it. -Here's an [off-the-shelf config] for it. - -Clone it to a directory called `base`: +Clone this config to a directory called `base`: ``` @@ -51,6 +50,19 @@ git clone \ tree $DEMO_HOME ``` +Expecting something like: +> ``` +> /tmp/tmp.IyYQQlHaJP +> └── base +> ├── configMap.yaml +> ├── deployment.yaml +> ├── Kube-manifest.yaml +> ├── LICENSE +> ├── README.md +> └── service.yaml +> ``` + + One could immediately apply these resources to a cluster: @@ -58,8 +70,8 @@ cluster: > kubectl apply -f $DEMO_HOME/base > ``` -to instantiate the _hello_ service. This ignores -the [manifest], and just uses the raw resources. +to instantiate the _hello_ service. `kubectl` +would only recognize the resource files. ## The Manifest @@ -102,8 +114,8 @@ Create a _staging_ and _production_ [overlay]: * _Staging_ enables a risky feature not enabled in production. * _Production_ has a higher replica count. - * Greetings from these cluster [instances] will differ - from each other. + * Web server greetings from these cluster + [instances] will differ from each other. ``` @@ -210,7 +222,7 @@ EOF - an _overlays_ directory, containing the manifests and patches required to create distinct _staging_ - and _production_ instance in a cluster. + and _production_ instances in a cluster. Review the directory structure and differences: @@ -219,6 +231,25 @@ Review the directory structure and differences: tree $DEMO_HOME ``` +Expecting something like: +> ``` +> /tmp/tmp.IyYQQlHaJP1< +> ├── base +> │   ├── configMap.yaml +> │   ├── deployment.yaml +> │   ├── Kube-manifest.yaml +> │   ├── LICENSE +> │   ├── README.md +> │   └── service.yaml +> └── overlays +> ├── production +> │   ├── deployment.yaml +> │   └── Kube-manifest.yaml +> └── staging +> ├── Kube-manifest.yaml +> └── map.yaml +> ``` + ``` diff \ diff --git a/cmd/kinflate/demo/tree1.png b/cmd/kinflate/demo/tree1.png new file mode 100644 index 0000000000000000000000000000000000000000..a92235187c79e6fa3bb74842d5e15483b29e9333 GIT binary patch literal 8738 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 literal 0 HcmV?d00001