The multi-cluster gateway controller, leverages the gateway API standard and Open Cluster Management to provide multi-cluster connectivity and global load balancing
Key Features:
When deploying the multicluster gateway controller using the make targets, the following will be created:
make dependencies
brew install openssl
. You'll need to update your PATH as macOS provides an older version via libressl as welldnf install openssl
Set up your DNS Provider by following these steps
Setup your local environment
make local-setup MGC_WORKLOAD_CLUSTERS_COUNT=<NUMBER_WORKLOAD_CLUSTER>
Build the controller image and load it into the control plane
kubectl config use-context kind-mgc-control-plane
make kind-load-gateway-controller
Deploy the controller(s) to the control plane cluster
make deploy-gateway-controller
(Optional) View the logs of the deployed controller
kubectl logs -f $(kubectl get pods -n multi-cluster-gateways | grep "mgc-" | awk '{print $1}') -n multi-cluster-gateways
Set up your DNS Provider by following these steps
Setup your local environment
make local-setup MGC_WORKLOAD_CLUSTERS_COUNT=<NUMBER_WORKLOAD_CLUSTER>
Run the controller locally:
kubectl config use-context kind-mgc-control-plane
make build-gateway-controller run-gateway-controller
In any terminal window target control plane cluster by:
kubectl config use-context kind-mgc-control-plane
If you want to wipe everything clean consider using:
make local-cleanup # Remove kind clusters created locally and cleanup any generated local files.
If the intention is to cleanup kind cluster and prepare them for re-installation consider using:
make local-cleanup-mgc MGC_WORKLOAD_CLUSTERS_COUNT=<NUMBER_WORKLOAD_CLUSTER> # prepares clusters for make local-setup-mgc
Copyright 2022 Red Hat.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.