You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/patterns/hybrid-mesh-platform/_index.md
+16-2Lines changed: 16 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,19 @@ contributor:
44
44
45
45
**Maintainer:** Maximiliano Pizarro, Specialist Solution Architect at Red Hat
46
46
47
-
> **Your journey:** Install via the Validated Patterns framework (`./pattern.sh install`), connect three OpenShift clusters (hub + east + west) through ACM managedClusterGroups, and observe IoT sensor data across Grafana and Developer Hub. The pages below follow one continuous story — concept, install, operate, scaffold — so you can read straight through or jump to any chapter.
47
+
## The problem this pattern solves
48
+
49
+
Operating a multi-cluster OpenShift fleet creates three compounding challenges that a Service Mesh alone cannot address:
50
+
51
+
| Challenge | Without this pattern | With Hybrid Mesh Platform |
52
+
| --- | --- | --- |
53
+
|**Cross-cluster connectivity**| Site-to-site VPNs, manual firewall rules per pair of clusters | Skupper Virtual Application Network — outbound-only mTLS, no inbound firewall changes |
54
+
|**Fleet governance drift**| Each cluster managed independently; configurations diverge over time | Single `main` branch drives hub + east + west via ACM + dual GitOps (PUSH ApplicationSet + PULL clustergroup) |
55
+
|**AI-assisted operations**| Operators react to incidents by parsing dashboards and YAML | OpenShift Lightspeed + MCP Gateway let operators act on platform state in natural language, reducing MTTA on infrastructure incidents |
56
+
57
+
**Goal:** This pattern combines Red Hat Service Mesh for secure inter-service connectivity with OpenShift AI (MaaS + vLLM) and OpenShift Lightspeed + MCP for natural-language platform operations — giving teams centralized GitOps governance, secure cross-cluster communication, and AI-assisted incident response in a single deployable reference architecture.
58
+
59
+
> **Your journey:** Install via the Validated Patterns framework (`./pattern.sh install`), connect three OpenShift clusters (hub + east + west) through ACM `managedClusterGroups`, and observe IoT sensor data across Grafana and Developer Hub. The pages below follow one continuous story — concept, install, operate, scaffold.
48
60
49
61
## What is Hybrid Mesh Platform?
50
62
@@ -55,7 +67,9 @@ contributor:
55
67
-**OpenShift Service Mesh 3** in **ambient mode** provides ztunnel-based L4 encryption and optional waypoint L7 policy across all clusters.
56
68
-**Connectivity Link (Kuadrant)** layers API-aware ingress policies — rate limiting, auth, DNS/TLS automation — on top of Gateway API.
57
69
58
-
**Tested on:** Red Hat OpenShift Container Platform **4.17+** on **AWS** (hub + east spoke + west spoke). See [Cluster sizing](cluster-sizing) for recommended instance types.
70
+
**Tested on:** Red Hat OpenShift Container Platform **4.17+** on **AWS** (hub + east spoke + west spoke, 3 workers each).
71
+
72
+
**Multi-cluster topology:** this is a **hub + two spokes** pattern (not single-cluster). All three clusters are required; standalone single-cluster deployment is not supported by default. See [Cluster sizing](cluster-sizing) for minimum instance types per role.
Copy file name to clipboardExpand all lines: content/patterns/hybrid-mesh-platform/architecture.md
+27Lines changed: 27 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,10 +21,37 @@ Spokes remain the execution venues for application namespaces, data-plane compon
21
21
|**Observability**| Aggregated metrics, logging, and tracing strategies start at the hub and uniform dashboards span spokes. |
22
22
|**GitOps consistency**| A single Git revision (`main`) with region paths drives spoke drift correction. |
23
23
24
+
## Multi-cluster topology: three required clusters
25
+
26
+
This pattern requires **three OpenShift clusters** — not a single-cluster deployment. The topology follows the Validated Patterns hub-spoke model:
27
+
28
+
```
29
+
┌──────────────────────────────────────┐
30
+
│ Hub cluster (OpenShift on AWS) │
31
+
│ ACM · Argo CD · Developer Hub · RHOAI│
32
+
│ ACS Central · Grafana · Skupper · │
33
+
│ Kuadrant · OpenShift Lightspeed · MCP│
34
+
└──────┬─────────────────┬──────────────┘
35
+
ACM push │ │ ACM push
36
+
GitOps │ │ GitOps
37
+
┌──────▼───────┐ ┌──────▼───────┐
38
+
│ East spoke │ │ West spoke │
39
+
│ Industrial │ │ Industrial │
40
+
│ Edge · Kafka │ │ Edge · Kafka │
41
+
│ Camel K · ML │ │ MirrorMaker │
42
+
│ DevSpaces │ │ Skupper │
43
+
└──────────────┘ └──────────────┘
44
+
◄────────── Skupper VAN (mTLS, outbound-only) ──────────►
45
+
```
46
+
47
+
Hub and spokes communicate over a **Skupper Virtual Application Network** — outbound-only mTLS tunnels, no inbound firewall rule changes needed. The hub's `ApplicationSet` pushes spoke charts; each spoke's local Argo CD pulls its `clusterGroup` from Git autonomously.
48
+
24
49
## Platform architecture overview
25
50
26
51

52
+
27
53
*Single `main` branch: hub at `charts/region/hub`, spokes at `charts/region/east` and `charts/region/west`, shared charts under `charts/all/`.*
54
+
28
55
## Follow the request — one temperature reading end to end
29
56
30
57
When a machine sensor on the **east** spoke publishes a temperature sample, the path is: **MQTT** (`messaging` broker) → **Camel K** (`mqtt-to-kafka` integration) → **Kafka** (`dev-cluster` topic) → optional **ML scoring** (KServe) → **line-dashboard** WebSocket consumer. In parallel, **Thanos Querier** on east scrapes Istio and Kafka metrics; a **Skupper Connector** (`prometheus-east`) tunnels HTTP to the hub, where **Grafana** datasource `prometheus-east` plots the series. The **Hub Gateway** can route browser traffic to the east line-dashboard via **spoke-gateway** and Skupper listener `ie-gateway-east`. Developer Hub **Topology** shows the same pods when the catalog entity carries `backstage.io/kubernetes-cluster: east` and spoke API tokens are synced.
@@ -77,17 +77,34 @@ Use cluster names **`hub`**, **`east`**, and **`west`**. Namespace **`stackrox`*
77
77
78
78
## Prerequisites
79
79
80
-
- Red Hat OpenShift Container Platform **4.20** (reference version; 4.14+ supported per cluster)
81
-
-**Three clusters:** one hub, one east-region spoke, one west-region spoke (ACM labels drive placement)
82
-
-**Helm 3** on your workstation or CI runner (`helm version`)
83
-
-**Git** client and hosting account (GitHub in examples)
84
-
-**`oc` CLI** logged into the hub as cluster-admin for ACM import (recommended)
85
-
- Network access to GitHub (or your fork) and container registries from all clusters
80
+
### OpenShift clusters
81
+
82
+
| Requirement | Value |
83
+
| --- | --- |
84
+
|**OpenShift version**| 4.17+ (tested on 4.20 on AWS) |
85
+
|**Topology**|**3 clusters** — one hub, one east spoke, one west spoke (single-cluster deployment is not supported by default) |
86
+
|**Storage class**| Dynamic provisioner required on all clusters (AWS gp3-csi or equivalent). Kafka, Gitea, Quay, and Vault all require `PersistentVolumeClaim`. |
87
+
|**Network**| All clusters must reach your Git fork (GitHub by default) and public container registries, or mirrored equivalents. |
88
+
89
+
### Hub cluster — additional requirements
90
+
91
+
| Operator / feature | Requirement |
92
+
| --- | --- |
93
+
|**OpenShift AI (RHOAI)**| Required for MaaS / vLLM inference. Needs Node Feature Discovery and GPU operator **only** if you enable GPU-accelerated models. CPU-based inference (Qwen3 / Granite on CPU) works without GPU. |
94
+
|**GPU (optional)**| NVIDIA or AMD GPU node for accelerated vLLM. Without GPU, enable `modelServing.cpuOnly: true` in `values-hub.yaml`. |
95
+
|**OpenShift Lightspeed**| Requires `OLSConfig` CRD and an OpenAI-compatible endpoint (MaaS on hub or external). |
96
+
|**Vault**| HashiCorp Vault is deployed by the pattern operator as the secrets backend. |
97
+
98
+
### Workstation
99
+
100
+
-**`oc` CLI** logged into the hub as `cluster-admin` for ACM import
101
+
-**Helm 3** (`helm version`)
102
+
-**Git** client and a GitHub (or Gitea) account
86
103
87
104
### Network requirements (connected environments)
88
105
89
-
1. Access to public container registries (or mirrored equivalents)
90
-
2. Access to your Git repository (fork of `hybrid-mesh-platform`)
106
+
1. Access to public container registries (or mirrored equivalents) from all clusters
107
+
2. Access to your Git fork from all clusters
91
108
92
109
### Cluster sizing (AWS — OpenShift 4.20)
93
110
@@ -129,13 +146,37 @@ Update `main.gitops.repoURL` in `values-global.yaml` and cluster domains in `ove
129
146
130
147
## Step 2: Configure secrets and cluster domains
131
148
132
-
Copy and edit secrets:
149
+
Copy the secrets template and edit before installation. **Do not commit `values-secret.yaml` to Git.**
133
150
134
151
```bash
135
152
cp values-secret.yaml.template values-secret.yaml
136
153
```
137
154
138
-
Set hub and spoke cluster domains in override files before install. See [MIGRATION.md](https://github.com/maximilianoPizarro/hybrid-mesh-platform/blob/main/MIGRATION.md) for the mapping from legacy RHDP-injected secrets.
155
+
### Required secrets (values-secret.yaml)
156
+
157
+
The Validated Patterns secrets framework (Vault + External Secrets Operator) reads `values-secret.yaml` at install time and populates Vault. The following secrets are defined in the template:
158
+
159
+
| Secret name | Fields | When required |
160
+
| --- | --- | --- |
161
+
|`config-demo`|`secret`| Always (auto-generated if left as `onMissingValue: generate`) |
162
+
|`kairos-ai-credentials`|`api-key`| When Kairos SmartScaling AI features are enabled on spokes |
163
+
|`openshift-ai-maas-credentials`|`OPENAI_API_KEY`, `OPENAI_API_BASE`| When OpenShift AI / MaaS inference is enabled on the hub |
164
+
|`mcp-gateway-argocd`|`token`| When MCP Gateway is enabled (OpenShift Lightspeed integration) |
165
+
|`workshop-users`|`defaultPassword`| Workshop Showroom (demo only; use OAuth in production) |
166
+
| AWS credentials |`aws_access_key_id`, `aws_secret_access_key`| Only if using ACM ClusterPools to provision new clusters |
167
+
168
+
Fields marked `onMissingValue: generate` are auto-generated by Vault for demo environments. For production, set them to `onMissingValue: error` and provide values explicitly.
169
+
170
+
Set hub and spoke cluster domains in override files before install:
171
+
172
+
```bash
173
+
# Edit your cloud provider override (AWS example):
174
+
vi overrides/values-aws-hub.yaml
175
+
vi overrides/values-aws-east.yaml
176
+
vi overrides/values-aws-west.yaml
177
+
```
178
+
179
+
See [MIGRATION.md](https://github.com/maximilianoPizarro/hybrid-mesh-platform/blob/main/MIGRATION.md) for the mapping from legacy RHDP-injected secrets.
If any check fails, see the [extended troubleshooting guide](https://maximilianopizarro.github.io/hybrid-mesh-platform/validatedpatterns-docs/troubleshooting.html) and the [Validation Guide](https://maximilianopizarro.github.io/hybrid-mesh-platform/validation-guide.html).
0 commit comments