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

Docs update #725

Merged
merged 1 commit into from
Dec 13, 2023
Merged
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
31 changes: 16 additions & 15 deletions docs/installation/control-plane-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,43 +4,44 @@ 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, see the documentation for installation instructions [here](https://cert-manager.io/docs/installation/kubectl/).

## 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 @@ -60,7 +61,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 @@ -71,7 +72,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 @@ -128,7 +129,7 @@ stringData:
EOF
```

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

#### AWS:

Expand Down Expand Up @@ -165,7 +166,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 @@ -177,7 +178,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
34 changes: 18 additions & 16 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 Down