Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(install): add separate install guide for each env #2054

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
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
2 changes: 2 additions & 0 deletions .github/styles/config/vocabularies/Base/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,8 @@ Mockbin
Moesif
MongoDB
m?TLS
[mM]ulti-zone
[sS]ingle-zone
Multus
NAD
namespace[sd]?
Expand Down
4 changes: 4 additions & 0 deletions .github/styles/config/vocabularies/Base/reject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,8 @@ controlplane
data-plane
dataplane
tcp
multizone
multi\s+zone
singlezone
single\s+zone
tls
27 changes: 21 additions & 6 deletions app/_data/docs_nav_kuma_2.9.x.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ items:
group: true
items:
- text: About service meshes
url: /introduction/about-service-meshes
url: /introduction/about-service-meshes/
- text: Overview of Kuma
url: /introduction/overview-of-kuma/
- text: How Kuma works
Expand Down Expand Up @@ -33,7 +33,7 @@ items:
group: true
items:
- text: Deploy Kuma on Kubernetes
url: /quickstart/kubernetes-demo
url: /quickstart/kubernetes-demo/
items:
- text: Prerequisites
url: "/quickstart/kubernetes-demo/#prerequisites"
Expand All @@ -50,7 +50,22 @@ items:
- text: Next steps
url: "/quickstart/kubernetes-demo/#next-steps"
- text: Deploy Kuma on Universal
url: /quickstart/universal-demo
url: /quickstart/universal-demo/
items:
- text: Prerequisites
url: "/quickstart/universal-demo/#prerequisites"
- text: Start Kubernetes cluster
url: "/quickstart/universal-demo/#start-kubernetes-cluster"
- text: Install Kuma
url: "/quickstart/universal-demo/#install-kuma"
- text: Deploy demo application
url: "/quickstart/universal-demo/#deploy-demo-application"
- text: Explore GUI
url: "/quickstart/universal-demo/#explore-the-gui"
- text: Introduce zero-trust security
url: "/quickstart/universal-demo/#introduce-zero-trust-security"
- text: Next steps
url: "/quickstart/universal-demo/#next-steps"
- title: Kuma in Production
group: true
items:
Expand Down Expand Up @@ -81,14 +96,14 @@ items:
- text: Configure zone proxy authentication
url: /production/cp-deployment/zoneproxy-auth/
- text: Control plane configuration reference
url: /reference/kuma-cp
url: /reference/kuma-cp/
generate: false
- text: Systemd
url: /production/cp-deployment/systemd/
- text: Kubernetes
url: /production/cp-deployment/kubernetes/
- text: kumactl
url: /explore/cli
url: /explore/cli/
- text: Configuring your Mesh and multi-tenancy
url: /production/mesh/
- title: Data plane configuration
Expand Down Expand Up @@ -500,7 +515,7 @@ items:
- text: Progressively rolling in strict MTLS
url: /guides/progressively-rolling-in-strict-mtls/
- text: Producer and consumer policies
url: /guides/consumer-producer-policies
url: /guides/consumer-producer-policies/
- title: Reference
group: true
items:
Expand Down
58 changes: 46 additions & 12 deletions app/_data/docs_nav_kuma_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ items:
group: true
items:
- text: About service meshes
url: /introduction/about-service-meshes
url: /introduction/about-service-meshes/
- text: Overview of Kuma
url: /introduction/overview-of-kuma/
- text: How Kuma works
Expand All @@ -19,8 +19,27 @@ items:
url: "/introduction/how-kuma-works/#kuma-vs-xyz"
- text: Architecture
url: /introduction/architecture/
- text: Install Kuma
url: /introduction/install-kuma/
- title: Install Kuma
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe this could be a separate top level entry in sidebar?

group: true
items:
- text: Overview
url: /introduction/install/overview/
- title: Single-zone
group: true
items:
- text: Kubernetes with Helm
url: /introduction/install/single-zone/helm/
- text: Kubernetes with kumactl
url: /introduction/install/single-zone/kubernetes-kumactl/
- text: Universal
url: /introduction/install/single-zone/universal/
- title: Multi-zone
group: true
items:
- text: Kubernetes with Helm
url: /introduction/install/multi-zone/helm/
- text: Kubernetes with kumactl
url: /introduction/install/multi-zone/kubernetes-kumactl/
- text: Concepts
url: /introduction/concepts/
- text: Kuma requirements
Expand All @@ -33,7 +52,7 @@ items:
group: true
items:
- text: Deploy Kuma on Kubernetes
url: /quickstart/kubernetes-demo
url: /quickstart/kubernetes-demo/
items:
- text: Prerequisites
url: "/quickstart/kubernetes-demo/#prerequisites"
Expand All @@ -50,7 +69,22 @@ items:
- text: Next steps
url: "/quickstart/kubernetes-demo/#next-steps"
- text: Deploy Kuma on Universal
url: /quickstart/universal-demo
url: /quickstart/universal-demo/
items:
- text: Prerequisites
url: "/quickstart/universal-demo/#prerequisites"
- text: Start Kubernetes cluster
url: "/quickstart/universal-demo/#start-kubernetes-cluster"
- text: Install Kuma
url: "/quickstart/universal-demo/#install-kuma"
- text: Deploy demo application
url: "/quickstart/universal-demo/#deploy-demo-application"
- text: Explore GUI
url: "/quickstart/universal-demo/#explore-the-gui"
- text: Introduce zero-trust security
url: "/quickstart/universal-demo/#introduce-zero-trust-security"
- text: Next steps
url: "/quickstart/universal-demo/#next-steps"
- title: Kuma in Production
group: true
items:
Expand Down Expand Up @@ -81,14 +115,14 @@ items:
- text: Configure zone proxy authentication
url: /production/cp-deployment/zoneproxy-auth/
- text: Control plane configuration reference
url: /reference/kuma-cp
url: /reference/kuma-cp/
generate: false
- text: Systemd
url: /production/cp-deployment/systemd/
- text: Kubernetes
url: /production/cp-deployment/kubernetes/
- text: kumactl
url: /explore/cli
url: /explore/cli/
- text: Configuring your Mesh and multi-tenancy
url: /production/mesh/
- title: Data plane configuration
Expand Down Expand Up @@ -243,11 +277,11 @@ items:
- text: Service Discovery
url: /networking/service-discovery/
- text: MeshService
url: "/networking/meshservice/"
url: /networking/meshservice/
- text: MeshMultiZoneService
url: "/networking/meshmultizoneservice/"
url: /networking/meshmultizoneservice/
- text: HostnameGenerator
url: "/networking/hostnamegenerator/"
url: /networking/hostnamegenerator/
- text: DNS
url: /networking/dns/
items:
Expand Down Expand Up @@ -500,7 +534,7 @@ items:
- text: Progressively rolling in strict MTLS
url: /guides/progressively-rolling-in-strict-mtls/
- text: Producer and consumer policies
url: /guides/consumer-producer-policies
url: /guides/consumer-producer-policies/
- title: Reference
group: true
items:
Expand All @@ -511,7 +545,7 @@ items:
- text: Kuma data collection
url: /reference/data-collection/
- text: Control plane configuration reference
url: /reference/kuma-cp
url: /reference/kuma-cp/
- text: Envoy proxy template
url: /reference/proxy-template/
- title: Community
Expand Down
41 changes: 41 additions & 0 deletions app/_src/introduction/install/multi-zone/helm.md
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this should replace: https://kuma.io/docs/2.9.x/production/cp-deployment/multi-zone/ do we need to move anything from old guide somewhere before we remove it?

Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Install multi-zone on Kubernetes with kumactl
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes clusters using [Helm](https://helm.sh/).

1. Add helm repo:
```shell
helm repo add {{site.mesh_helm_repo_name}} {{site.mesh_helm_repo_url}} && helm repo update
```
2. Install {{site.mesh_product_name}} on global cluster:
```shell
helm install --create-namespace \
--namespace {{site.mesh_namespace}} \
--set "controlPlane.mode=global" \
{{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }}
```
3. Find the external IP and port of the `{{site.mesh_product_name}}-global-zone-sync` service in the {{site.mesh_namespace}} namespace:
```shell
kubectl get service {{site.mesh_product_name}}-global-zone-sync -n {{site.mesh_namespace}} -ojson -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to add this to an env var and use it just after?

```
4. Install zone control plane on zone cluster (you need to substitute your `<zone-name>` and `<global-kds-address>` extracted in the previous step):
```shell
helm install --create-namespace --namespace {{site.mesh_namespace}} \
--set "controlPlane.mode=zone" \
--set "controlPlane.zone=<zone-name>" \
--set "ingress.enabled=true" \
--set "controlPlane.kdsGlobalAddress=grpcs://<global-kds-address>:5685" \
--set "controlPlane.tls.kdsZoneClient.skipVerify=true" \
{{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }}
Automaat marked this conversation as resolved.
Show resolved Hide resolved
```
5. To verify installation on global Kubernetes cluster run:
```shell
kubectl -n {{site.mesh_namespace}} port-forward svc/{{ site.mesh_helm_install_name }}-control-plane 5681:5681
```
Open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui).
You should see zone connected and healthy.

## Next steps
* Read more about [multi-zone setup](/docs/{{ page.version }}/production/deployment/multi-zone/)
46 changes: 46 additions & 0 deletions app/_src/introduction/install/multi-zone/kubernetes-kumactl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
title: Install multi-zone on Kubernetes with kumactl
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes clusters using `kumactl`.

1. Go to the [{{site.mesh_product_name}} packages](https://cloudsmith.io/~kong/repos/{{site.mesh_product_name_path}}-binaries-release/packages/?q=version%3A{{ page.version_data.version }})
page to download and extract the installation archive for your OS, or download and extract the latest release automatically (Linux or macOS):
```shell
curl -L {{site.links.web}}{% if page.edition %}/{{page.edition}}{% endif %}/installer.sh | VERSION={{ page.version_data.version }} sh -
```
2. To finish installation, add {{site.mesh_product_name}} binaries to path:
```shell
export PATH=$(pwd)/{{site.mesh_product_name_path}}-{{ page.version_data.version }}/bin:$PATH
```
This directory contains binaries for `kuma-dp`, `kuma-cp`, `kumactl`, `envoy` and `coredns`
3. Install {{site.mesh_product_name}} on global cluster:
```shell
kumactl install control-plane \
--set "controlPlane.mode=global" \
| kubectl apply -f -
```
4. Find the external IP and port of the `{{site.mesh_product_name}}-global-zone-sync` service in the {{site.mesh_namespace}} namespace:
```shell
kubectl get service {{site.mesh_product_name}}-global-zone-sync -n {{site.mesh_namespace}} -ojson -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
```
5. Install zone control plane on zone cluster (you need to substitute your `<zone-name>` and `<global-kds-address>` extracted in the previous step):
```shell
kumactl install control-plane \
--set "controlPlane.mode=zone" \
--set "controlPlane.zone=<zone-name>" \
--set "ingress.enabled=true" \
--set "controlPlane.kdsGlobalAddress=grpcs://<global-kds-address>:5685" \
--set "controlPlane.tls.kdsZoneClient.skipVerify=true" \
| kubectl apply -f -
```
6. To verify installation on global Kubernetes cluster run:
```shell
kubectl -n {{site.mesh_namespace}} port-forward svc/{{ site.mesh_helm_install_name }}-control-plane 5681:5681
```
Open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui).
You should see zone connected and healthy.

## Next steps
* Read more about [multi-zone setup](/docs/{{ page.version }}/production/deployment/multi-zone/)
32 changes: 32 additions & 0 deletions app/_src/introduction/install/overview.md
Copy link
Contributor Author

Choose a reason for hiding this comment

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

this page looks poor, can we do something to improve it?

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 need it?

Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: Installation methods overview
---


## Single-zone

{{site.mesh_product_name}}’s default deployment model with one control plane (that can be scaled horizontally) and many
data planes connecting directly to it.

### Kubernetes

[Install {{site.mesh_product_name}} with helm instruction](/docs/{{ page.version }}/introduction/install/single-zone/helm/)

[Install {{site.mesh_product_name}} with kumactl instruction](/docs/{{ page.version }}/introduction/install/single-zone/kubernetes-kumactl/)

### Universal

[Install single zone {{site.mesh_product_name}} instruction](/docs/{{ page.version }}/introduction/install/single-zone/universal/)

## Multi-zone

{{site.mesh_product_name}}’s advanced deployment model to support multiple Kubernetes or VM-based zones, or hybrid Service Meshes
running on both Kubernetes and VMs combined.

### Kubernetes

[Install {{site.mesh_product_name}} with helm instruction](/docs/{{ page.version }}/introduction/install/multi-zone/helm/)

[Install {{site.mesh_product_name}} with kumactl instruction](/docs/{{ page.version }}/introduction/install/multi-zone/kubernetes-kumactl/)


27 changes: 27 additions & 0 deletions app/_src/introduction/install/single-zone/helm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
title: Install single-zone on Kubernetes with Helm
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes cluster using [Helm](https://helm.sh/).

1. Add helm repo:
```shell
helm repo add {{site.mesh_helm_repo_name}} {{site.mesh_helm_repo_url}} && helm repo update
```
2. Install {{site.mesh_product_name}} on your cluster:
```shell
helm install --create-namespace \
--namespace {{site.mesh_namespace}} \
{{ site.mesh_helm_install_name }} {{ site.mesh_helm_repo }} --version {{ page.version_data.version }}
```
3. Verify installation:
```shell
kubectl -n {{site.mesh_namespace}} port-forward svc/{{ site.mesh_helm_install_name }}-control-plane 5681:5681
```
Open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui)

## Next steps
* [Complete quickstart](/docs/{{ page.version }}/quickstart/kubernetes-demo/) to install demo application and secure traffic
* Read more about [single-zone setup](/docs/{{ page.version }}/production/deployment/single-zone/)
* [Federate](/docs/{{ page.version }}/guides/federate) zone into a multi-zone deployment
31 changes: 31 additions & 0 deletions app/_src/introduction/install/single-zone/kubernetes-kumactl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
title: Install single-zone on Kubernetes with kumactl
content_type: how-to
---

This is a simple guide on how to install {{site.mesh_product_name}} on your Kubernetes cluster using `kumactl`.

1. Go to the [{{site.mesh_product_name}} packages](https://cloudsmith.io/~kong/repos/{{site.mesh_product_name_path}}-binaries-release/packages/?q=version%3A{{ page.version_data.version }})
page to download and extract the installation archive for your OS, or download and extract the latest release automatically (Linux or macOS):
```shell
curl -L {{site.links.web}}{% if page.edition %}/{{page.edition}}{% endif %}/installer.sh | VERSION={{ page.version_data.version }} sh -
```
2. To finish installation, add {{site.mesh_product_name}} binaries to path:
```shell
export PATH=$(pwd)/{{site.mesh_product_name_path}}-{{ page.version_data.version }}/bin:$PATH
```
This directory contains binaries for `kuma-dp`, `kuma-cp`, `kumactl`, `envoy` and `coredns`
3. Install {{site.mesh_product_name}} on your cluster:
```shell
kumactl install control-plane | kubectl apply -f -
```
4. Verify installation:
```shell
kubectl -n {{site.mesh_namespace}} port-forward svc/{{ site.mesh_helm_install_name }}-control-plane 5681:5681
```
Open [GUI](/docs/{{ page.version }}/production/gui) in your browser by navigating to [127.0.0.1:5681/gui](http://127.0.0.1:5681/gui)

## Next steps
* [Complete quickstart](/docs/{{ page.version }}/quickstart/kubernetes-demo/) to install demo application and secure traffic
* Read more about [single-zone setup](/docs/{{ page.version }}/production/deployment/single-zone/)
* [Federate](/docs/{{ page.version }}/guides/federate) zone into a multi-zone deployment
Loading
Loading