Skip to content

Commit

Permalink
update install docs
Browse files Browse the repository at this point in the history
  • Loading branch information
R-Lawton committed Dec 12, 2023
1 parent e90d98e commit 5d263b2
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 33 deletions.
33 changes: 17 additions & 16 deletions docs/installation/control-plane-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,47 +4,48 @@ This guide will show you how to install and configure the Multi-Cluster Gateway

## Prerequisites

- A **hub cluster** running the OCM control plane (v0.11.0 or greater)
- Addons enabled `clusteradm install hub-addon --names application-manager`
- A **hub cluster** running the OCM control plane (>= v0.11.0 )
- Open cluster management addons enabled
- `clusteradm install hub-addon --names application-manager`
- Any number of additional **spoke clusters** that have been configured as OCM [ManagedClusters](https://open-cluster-management.io/concepts/managedcluster/)
- [Kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) (>= v1.14.0)
- Either a pre-existing [cert-manager](https://cert-manager.io/)(>=v1.12.2) installation or the [Kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) and [Helm](https://helm.sh/docs/intro/quickstart/#install-helm) CLIs
- Either a pre-existing [cert-manager](https://cert-manager.io/)(>=v1.12.2) installation _or_ the [Kustomize](https://kubectl.docs.kubernetes.io/installation/kustomize/) and [Helm](https://helm.sh/docs/intro/quickstart/#install-helm) CLIs installed
- Amazon Web services (AWS) and or Google cloud provider (GCP) credentials. See the [DNS Provider](../dnspolicy/dns-provider.md) guide for obtaining these credentials.

## Configure OCM with RawFeedbackJsonString Feature Gate

All OCM spoke clusters must be configured with the `RawFeedbackJsonString` feature gate enabled:
All OCM spoke clusters must be configured with the `RawFeedbackJsonString` feature gate enabled.

1. By patching each spoke cluster's `klusterlet` in an existing OCM install:
Patch each spoke cluster's `klusterlet` in an existing OCM install:

```bash
```bash
kubectl patch klusterlet klusterlet --type merge --patch '{"spec": {"workConfiguration": {"featureGates": [{"feature": "RawFeedbackJsonString", "mode": "Enable"}]}}}' --context <EACH_SPOKE_CLUSTER>
```
```

## Setup for hub commands
Many of the commands in this document should be run in the context of your hub cluster.
By configure HUB_CLUSTER which will be used in the commands:

```bash
export HUB_CLUSTER=<hub-cluster-name>
export HUB_CLUSTER=<HUB_CUSTER_NAME>
```

## Install Cert-Manager
[Cert-manager](https://cert-manager.io/) first needs to be installed on your hub cluster. If this has not previously been installed on the cluster you can run the command below to do so:
Install [Cert-manager](https://cert-manager.io/) on your *hub* cluster:

```bash
kustomize --load-restrictor LoadRestrictionsNone build "github.com/kuadrant/multicluster-gateway-controller.git/config/mgc-install-guide/cert-manager?ref=release-0.3" --enable-helm | kubectl apply -f - --context $HUB_CLUSTER
```

## Installing MGC

First, run the following command in the context of your hub cluster to install the Gateway API CRDs:
First, run the following command in the context of your *hub* cluster to install the Gateway API CRDs:

```bash
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml --context $HUB_CLUSTER
```

We can then add a `wait` to verify the CRDs have been established:
Verify the CRDs have been established:

```bash
kubectl wait --timeout=5m crd/gatewayclasses.gateway.networking.k8s.io crd/gateways.gateway.networking.k8s.io crd/httproutes.gateway.networking.k8s.io --for=condition=Established --context $HUB_CLUSTER
Expand All @@ -64,7 +65,7 @@ kubectl apply -k "github.com/kuadrant/multicluster-gateway-controller.git/config

In addition to the MGC, this will also install the Kuadrant add-on manager and a `GatewayClass` from which MGC-managed `Gateways` can be instantiated.

After the configuration has been applied, you can verify that the MGC and add-on manager have been installed and are running:
Verify that the MGC and add-on manager have been installed and are running:

```bash
kubectl wait --timeout=5m -n multicluster-gateway-controller-system deployment/mgc-controller-manager deployment/mgc-add-on-manager deployment/mgc-policy-controller --for=condition=Available --context $HUB_CLUSTER
Expand All @@ -75,7 +76,7 @@ deployment.apps/mgc-add-on-manager condition met
deployment/mgc-policy-controller condition met
```

We can also verify that the `GatewayClass` has been accepted by the MGC:
Verify that the `GatewayClass` has been accepted by the MGC:

```bash
kubectl wait --timeout=5m gatewayclass/kuadrant-multi-cluster-gateway-instance-per-cluster --for=condition=Accepted --context $HUB_CLUSTER
Expand Down Expand Up @@ -132,7 +133,7 @@ stringData:
EOF
```

A `ManagedZone` can now be created:
Create a `ManagedZone` using the commands below:

#### AWS:

Expand Down Expand Up @@ -169,7 +170,7 @@ spec:
EOF
```

You can now verify that the `ManagedZone` has been created and is in a ready state:
Verify that the `ManagedZone` has been created and is in a ready state:

```bash
kubectl get managedzone -n multi-cluster-gateways --context $HUB_CLUSTER
Expand All @@ -181,7 +182,7 @@ mgc-dev-mz ef.hcpapps.net /hostedzone/Z06419551EM30QQYMZN7F 2

## Creating a Cert Issuer

We will now create a `ClusterIssuer` to be used with `cert-manager`. For simplicity, we will create a self-signed cert issuer here, but [other issuers can also be configured](https://cert-manager.io/docs/configuration/).
Create a `ClusterIssuer` to be used with `cert-manager`. For simplicity, we will create a self-signed cert issuer here, but [other issuers can also be configured](https://cert-manager.io/docs/configuration/).

```bash
cat <<EOF | kubectl apply -f - --context $HUB_CLUSTER
Expand Down
36 changes: 19 additions & 17 deletions docs/installation/service-protection-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,27 @@
This walkthrough will show you how to install and setup the Kuadrant Operator into an [OCM](https://open-cluster-management.io/) [Managed Cluster](https://open-cluster-management.io/concepts/managedcluster/).

## Prerequisites
* Access to an Open Cluster Management (>= v0.11.0) Managed Cluster, which has already been bootstrapped and registered with a hub cluster
* We have [a guide](./control-plane-installation.md) which covers this in detail
* Also see:
* [https://open-cluster-management.io/getting-started/quick-start/]
* [https://open-cluster-management.io/concepts/managedcluster/]
- Access to an Open Cluster Management(OCM) (>= v0.11.0) Managed Cluster, which has already been bootstrapped and registered with a hub cluster
- We have [a guide](./control-plane-installation.md) which covers this in detail
- For more information on OCM also see:
- [OCM quick start](https://open-cluster-management.io/getting-started/quick-start)
- [Managed cluster](https://open-cluster-management.io/concepts/managedcluster/)
- [Kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) (>= v1.14.0)
* OLM will need to be installed into the ManagedCluster where you want to run the Kuadrant Service Protection components
* See:
* https://sdk.operatorframework.io/docs/installation/
* https://olm.operatorframework.io/docs/getting-started/
* Kuadrant uses Istio as a Gateway API provider - this will need to be installed into the data plane clusters
* We recommend installing Istio 1.20.0, including Gateway API v1
* ```
- OLM installed on the ManagedCluster where you want to run the Kuadrant Service Protection components
- For installation guides please see:
- [Operator-sdk](https://sdk.operatorframework.io/docs/installation/)
- [OLM](https://olm.operatorframework.io/docs/getting-started/)
- Istio operator v1.20.0 installed on the spoke clusters
- Please see install guide [here](https://preliminary.istio.io/latest/docs/setup/install/operator/)
- Gateway API v1
- To install please use:
```
kubectl apply -f "https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.0.0/standard-install.yaml"
```
* See also: [https://preliminary.istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/]
* For more information please see: [GatewayAPI DOCs](https://preliminary.istio.io/latest/docs/tasks/traffic-management/ingress/gateway-api/)
## Install the Kuadrant OCM Add-On
To install the Kuadrant Service Protection components into a spoke `ManagedCluster`, target your OCM Hub cluster with `kubectl` and run:
To install the Kuadrant Service Protection components into a *spoke* `ManagedCluster`, target your OCM Hub cluster with `kubectl` and run:
```
kubectl apply -k "github.com/kuadrant/multicluster-gateway-controller.git/config/service-protection-install-guide?ref=release-0.3" -n namespace-of-your-managed-spoke-cluster-on-the-hub
Expand All @@ -32,11 +34,11 @@ The above command will install the `ManagedClusterAddOn` resource needed to inst
The Kuadrant addon will install:
* the Kuadrant Operator
* Kuadrant Operator
* Limitador (and its associated operator)
* Authorino (and its associated operator)
For more details, see the Kuadrant components installed by the (kuadrant-operator)[https://github.com/Kuadrant/kuadrant-operator#kuadrant-components]
For more details, see the Kuadrant components installed by the [kuadrant-operator](https://github.com/Kuadrant/kuadrant-operator#kuadrant-components)
### OLM and OpenShift CatalogSource
Expand All @@ -59,7 +61,7 @@ To let the Kuadrant operator use this existing installation, set the following:

`kubectl annotate managedclusteraddon kuadrant-addon "addon.open-cluster-management.io/values"='{"IstioOperator":"installed-state"}' -n <managed spoke cluster>`

This will propogate down and update the Kuadrant Operator, used by the Kuadrant OCM Addon.
This will propagate down and update the Kuadrant Operator, used by the Kuadrant OCM Addon.

## Verify the Kuadrant addon installation

Expand Down

0 comments on commit 5d263b2

Please sign in to comment.