Skip to content

Commit 6850812

Browse files
committed
feat: Enterprise multi-cluster scalability
Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
1 parent 7f5ebfe commit 6850812

1 file changed

Lines changed: 38 additions & 11 deletions

File tree

modules/administration-guide/pages/running-at-scale.adoc

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -174,15 +174,51 @@ Consider leveraging open-source solutions such as link:https://karpenter.sh/[Kar
174174
By design, {prod} is not multi-cluster aware, and you can only have one instance per cluster.
175175
However,
176176
you can run {prod} in a multi-cluster environment by deploying {prod} in each different cluster
177-
and using a load balancer or DNS-based routing to direct traffic to the appropriate instance based on the user’s location or other criteria.
177+
and using routing mechanisms to direct users to the appropriate instance.
178178
This approach can help
179179
improve performance and reliability by distributing the workload across multiple clusters
180180
and providing redundancy in case of cluster failures.
181181

182182
.Scheme of a multi-cluster environment
183183
image::running-at-scale/snip_{project-context}-multi-cluster.png[Scheme of a multi-cluster environment]
184184

185-
You can test running {prod-short} in a multi-cluster by using the link:https://developers.redhat.com/developer-sandbox[Developer Sandbox],
185+
.The Multicluster Redirector Solution
186+
187+
Red Hat offers an open-source Quarkus-based service called the `devspaces-multicluster-redirector` that acts as a single gateway for developers, automatically redirecting them to the correct {prod} instance on the correct cluster based on their OpenShift group membership.
188+
The community-supported version is currently available in the link:https://github.com/codeready-toolchain/crw-multicluster-redirector[GitHub repository].
189+
190+
.Architecture and Requirements
191+
192+
A critical requirement for the multicluster redirector is that all users must be provisioned to the host cluster where the redirector deploys. Users authenticate through this cluster's OAuth flow, even if they never run workloads there. The host cluster's OpenShift groups determine the routing logic.
193+
194+
.Configuration
195+
196+
The routing configuration uses a `ConfigMap` named `devspaces-openshift-group-mapping` containing JSON that maps OpenShift groups to {prod} URLs:
197+
198+
[source,json]
199+
----
200+
{
201+
"team-alpha": "https://devspaces-alpha.example.com"
202+
}
203+
----
204+
205+
The redirector watches this file and updates routing tables in real-time without requiring restarts.
206+
207+
.Operational Flow
208+
209+
The routing process follows these steps:
210+
211+
. OAuth authentication via proxy sidecar
212+
. Identity and group information passed through HTTP headers
213+
. OpenShift API queries verify group memberships
214+
. Mapping lookup determines the appropriate {prod} URL
215+
. User redirects to their designated cluster instance
216+
217+
When users belong to multiple OpenShift groups, the system displays a selection dashboard allowing developers to choose their desired {prod} instance.
218+
219+
.Developer Sandbox Example
220+
221+
You can test running {prod-short} in a multi-cluster environment by using the link:https://developers.redhat.com/developer-sandbox[Developer Sandbox],
186222
a free trial environment by Red Hat with pre-configured tools and services.
187223
From an infrastructure perspective,
188224
the Developer Sandbox consists of multiple link:https://www.redhat.com/en/technologies/cloud-computing/openshift/aws[ROSA] clusters.
@@ -191,12 +227,3 @@ the productized version of {prod} is installed
191227
and configured using link:https://argo-cd.readthedocs.io/en/stable/[Argo CD].
192228
Since the user base is spread across multiple clusters,
193229
link:https://workspaces.openshift.com/[workspaces.openshift.com] is used as a single entry point to the productized {prod} instances.
194-
You can find implementation details about the multicluster redirector in the following link:https://github.com/codeready-toolchain/crw-multicluster-redirector[GitHub repository].
195-
196-
[IMPORTANT]
197-
====
198-
The multi-cluster architecture of link:https://workspaces.openshift.com/[workspaces.openshift.com] is part of the link:https://developers.redhat.com/developer-sandbox[Developer Sandbox].
199-
It is a Developer Sandbox-specific solution
200-
that cannot be reused as-is in other environments.
201-
However, you can use it as a reference for implementing a similar solution well-tailored to your specific multicluster needs.
202-
====

0 commit comments

Comments
 (0)