Skip to content

Commit 1bfb278

Browse files
Add Hybrid Mesh Platform sandbox pattern documentation.
Introduces hub-spoke multi-cluster GitOps docs with architecture diagrams, getting started, observability, and Industrial Edge extension pages. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent abfdef0 commit 1bfb278

24 files changed

Lines changed: 902 additions & 0 deletions

.wordlist.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,7 @@ kafkatopic
516516
kafkatopics
517517
kam
518518
kamelet
519+
kaoto
519520
kasten
520521
kastendr
521522
kata
@@ -548,6 +549,8 @@ kubelet
548549
kubeletconfig
549550
kubernetes
550551
kubevirt
552+
kserve
553+
kuadrant
551554
kust
552555
kustomization
553556
kustomize
@@ -587,6 +590,7 @@ machineconfigs
587590
machineset
588591
macos
589592
macosx
593+
mailpit
590594
mailto
591595
maistra
592596
makefile
@@ -911,6 +915,7 @@ sigstore
911915
siteadmin
912916
skipdryrunonmissingresource
913917
skopeo
918+
skupper
914919
sla
915920
slas
916921
sme
@@ -1113,6 +1118,7 @@ yml
11131118
yourcluster
11141119
ypuzljq
11151120
zefrgjryxxxxxxxxx
1121+
ztunnel
11161122
zh
11171123
zj
11181124
zja
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
---
2+
title: Hybrid Mesh Platform
3+
date: 2026-05-20
4+
tier: sandbox
5+
summary: Multi-cluster GitOps platform using a hub-spoke topology with ACM, OpenShift Service Mesh, ACS, and Industrial Edge workloads on OpenShift 4.20.
6+
rh_products:
7+
- Red Hat OpenShift Container Platform
8+
- Red Hat Advanced Cluster Management
9+
- Red Hat OpenShift GitOps
10+
- Red Hat Advanced Cluster Security for Kubernetes
11+
- Red Hat OpenShift Service Mesh
12+
- Red Hat Connectivity Link
13+
- Red Hat OpenShift AI
14+
- Red Hat AMQ Streams
15+
- Red Hat build of Apache Camel
16+
- Red Hat OpenShift Pipelines
17+
- Red Hat Developer Hub
18+
- Red Hat Service Interconnect
19+
industries:
20+
- General
21+
- Industrial
22+
aliases: /hybrid-mesh-platform/
23+
links:
24+
github: https://github.com/maximilianopizarro/platform-hub-spoke-config
25+
install: getting-started
26+
bugs: https://github.com/maximilianopizarro/platform-hub-spoke-config/issues
27+
feedback: https://docs.google.com/forms/d/e/1FAIpQLScI76b6tD1WyPu2-d_9CCVDr3Fu5jYERthqLKJDUGwqBg7Vcg/viewform
28+
contributor:
29+
name: Maximiliano Pizarro
30+
contact: mailto:maximilianopizarro5@gmail.com
31+
git: https://github.com/maximilianoPizarro
32+
---
33+
34+
# Hybrid Mesh Platform
35+
36+
**Maintainer:** Maximiliano Pizarro, Specialist Solution Architect at Red Hat
37+
38+
This platform deploys in one `helm upgrade`, connects three OpenShift clusters (hub + east + west), and shows IoT sensor data across Grafana and Developer Hub within about 30 minutes. The pages below follow one continuous story — concept, install, operate, scaffold — so you can read straight through or jump to any chapter.
39+
40+
Multi-cluster GitOps platform using Red Hat products — a hub-spoke topology that centralizes governance with Red Hat Advanced Cluster Management (ACM), delivers [Industrial Edge](/patterns/industrial-edge/) workloads on regional spokes, uses OpenShift Service Mesh in ambient mode for east-west connectivity, layers Connectivity Link (Kuadrant) for API-aware ingress policy, exposes Grafana dashboards for cross-cluster visibility, and integrates Advanced Cluster Security (ACS) for vulnerability and runtime protection.
41+
42+
**Supported on:** Red Hat OpenShift Container Platform 4.20 (and 4.14 or newer per cluster).
43+
44+
Read **concept → mechanics → operations**: start with [Architecture](architecture), install via [Getting Started](getting-started), scaffold workloads via [Scaffolding](scaffolding), then use platform chapters (Hub Gateway, Observability, Industrial Edge) before drilling into the pattern repository.
45+
46+
## Overview
47+
48+
This repository models a **GitOps-first platform** where:
49+
50+
- **Hub cluster** runs ACM, OpenShift GitOps (Argo CD), observability aggregation, Developer Hub, ACS Central, Mailpit for notifications, and gateway-style HTTP routing with circuit breaking for shared services.
51+
- **Spoke clusters** (east/west regions) host **Industrial Edge** workloads: sensor and MQTT-style ingestion, Kafka pipelines, optional ML scoring, and dashboards fed by Prometheus-compatible metrics.
52+
- **Service Mesh 3 ambient** reduces sidecar overhead while retaining ztunnel-based L4 and waypoint-based L7 policy where needed.
53+
- **Hub Gateway** splits traffic into front and API services per spoke, with per-service **circuit breaking** via `DestinationRule`.
54+
- **Service Interconnect (Skupper)** bridges spoke services and metrics to the hub via a Virtual Application Network, without VPN or firewall changes.
55+
- **Spoke Gateways** aggregate Industrial Edge services per spoke for simplified cross-cluster exposure.
56+
- **Kiali + OSSM Console** provides service mesh topology visualization on every cluster via the OpenShift Console plugin.
57+
- **Grafana dashboards** roll up cluster and application signals from all clusters.
58+
- **ACS** provides centralized policy, CVE visibility, and SecuredCluster agents on spokes.
59+
60+
[![Platform hub-spoke overview](/images/hybrid-mesh-platform/arch-overview.png)](/images/hybrid-mesh-platform/arch-overview.png)
61+
62+
_Hub cluster aggregates observability and Developer Hub; east and west spokes run Industrial Edge workloads connected via Service Interconnect (Skupper)._
63+
64+
## Quick links
65+
66+
| Topic | Page |
67+
| --- | --- |
68+
| Architecture deep dive | [Architecture](architecture) |
69+
| Install flow | [Getting Started](getting-started) |
70+
| Hub Gateway | [Hub Gateway](hub-gateway) |
71+
| Observability | [Observability](observability) |
72+
| Industrial Edge (multi-cluster) | [Industrial Edge](industrial-edge) |
73+
| Scaffolding | [Scaffolding](scaffolding) |
74+
| Customization | [Ideas for customization](ideas-for-customization) |
75+
76+
## Recommended reading order
77+
78+
1. [Architecture](architecture) — mental model of hub, spokes, GitOps, and observability
79+
2. [Getting Started](getting-started) — bring clusters under GitOps
80+
3. [Scaffolding](scaffolding) — deploy Industrial Edge instances on east/west from Developer Hub
81+
4. [Hub Gateway](hub-gateway) — weighted ingress and circuit breaking across spokes
82+
5. [Observability](observability) — Grafana, Kiali, Kafka Console
83+
6. [Industrial Edge](industrial-edge) — factory data pipeline on multiple spokes
84+
85+
## Red Hat products used
86+
87+
- Red Hat OpenShift Container Platform
88+
- Red Hat Advanced Cluster Management for Kubernetes
89+
- Red Hat OpenShift GitOps (Argo CD)
90+
- Red Hat Advanced Cluster Security for Kubernetes
91+
- Red Hat OpenShift Service Mesh
92+
- Red Hat Connectivity Link (Kuadrant, Gateway API)
93+
- Red Hat OpenShift AI
94+
- Red Hat AMQ Streams (Apache Kafka)
95+
- Red Hat build of Apache Camel / Camel K
96+
- Red Hat OpenShift Pipelines (Tekton)
97+
- Red Hat Developer Hub (Backstage)
98+
- Red Hat Service Interconnect (Skupper)
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Architecture
3+
weight: 20
4+
aliases: /hybrid-mesh-platform/architecture/
5+
---
6+
7+
# Architecture
8+
9+
## Hub-spoke theory in multi-cluster Kubernetes
10+
11+
In multi-cluster Kubernetes, a hub-spoke model designates one administrative cluster (the hub) and one or more workload clusters (spokes). The hub owns fleet APIs: cluster inventory, policy placement, credentials for spoke registration, and often centralized GitOps controllers that fan out desired state.
12+
13+
Spokes remain the execution venues for application namespaces, data-plane components (Kafka, MQTT bridges, mesh dataplane), and regional isolation for latency, data residency, or blast-radius control.
14+
15+
## Why hub-spoke?
16+
17+
| Benefit | Description |
18+
| --- | --- |
19+
| Centralized management | One control plane for membership, RBAC patterns, and bulk upgrades. |
20+
| Policy enforcement | Kubernetes policies, compliance checks, and security baselines propagate from the hub. |
21+
| Observability | Aggregated metrics, logging, and tracing strategies start at the hub and uniform dashboards span spokes. |
22+
| GitOps consistency | A single Git revision strategy (with branch or overlay variants) drives spoke drift correction. |
23+
24+
## Platform architecture overview
25+
26+
Single `main` branch: hub chart at `.`, spoke charts at `east/` and `west/`, shared `components/` referenced by all clusters.
27+
28+
[![Platform architecture overview](/images/hybrid-mesh-platform/arch-overview.png)](/images/hybrid-mesh-platform/arch-overview.png)
29+
30+
[![Hub-spoke GitOps flow](/images/hybrid-mesh-platform/arch-hub-spoke-flow.png)](/images/hybrid-mesh-platform/arch-hub-spoke-flow.png)
31+
32+
## Follow the request — one temperature reading end to end
33+
34+
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.
35+
36+
[![End-to-end data flow](/images/hybrid-mesh-platform/arch-data-flow.png)](/images/hybrid-mesh-platform/arch-data-flow.png)
37+
38+
## Components on the hub vs spokes
39+
40+
| Area | Hub | Spokes | Config path |
41+
| --- | --- | --- | --- |
42+
| ACM hub operator & APIs | yes | | `values.yaml` |
43+
| ArgoCD / App-of-Apps root | yes | yes | `.` / `east/` / `west/` |
44+
| ApplicationSet (spoke apps) | yes | | `values.yaml` |
45+
| ACS Central | yes | | `values.yaml` |
46+
| ACS Secured Cluster | | yes | `east/` `west/` |
47+
| Developer Hub | yes | | `values.yaml` |
48+
| Hub Gateway (Gateway API) | yes | | `values.yaml` |
49+
| Spoke Gateway (Gateway API) | | yes | `east/` `west/` |
50+
| Industrial Edge workloads | | yes | `east/` `west/` |
51+
| Kafka brokers (regional) | | yes | `east/` `west/` |
52+
| Service Mesh ambient / ztunnel | yes | yes | both |
53+
| Istio CNI (`profile: ambient`) | yes | yes | both |
54+
| Skupper Site (hub listeners) | yes | | `values.yaml` |
55+
| Skupper Site (spoke connectors) | | yes | `east/` `west/` |
56+
| Grafana (multi-cluster dashboards) | yes | | `values.yaml` |
57+
| Grafana (local metrics) | | yes | `east/` `west/` |
58+
| Kiali + OSSM Console plugin | yes | yes | both |
59+
| Connectivity Link (RHCL) | yes | yes | both |
60+
| Kubecost (primary aggregator) | yes | | `values.yaml` |
61+
| Kubecost (agent) | | yes | `east/` `west/` |
62+
| Kafka Console (all clusters) | yes | | `values.yaml` |
63+
64+
## GitOps application delivery flow
65+
66+
Hub syncs first; ApplicationSet pushes per-spoke charts; each spoke Argo CD reconciles child Applications locally.
67+
68+
[![GitOps sync sequence](/images/hybrid-mesh-platform/arch-gitops-sync-sequence.png)](/images/hybrid-mesh-platform/arch-gitops-sync-sequence.png)
69+
70+
## Sync wave ordering
71+
72+
Components deploy in strict order via ArgoCD sync waves:
73+
74+
[![Sync wave ordering](/images/hybrid-mesh-platform/arch-sync-waves.png)](/images/hybrid-mesh-platform/arch-sync-waves.png)
75+
76+
Sync waves prevent operators from racing workloads — mesh and namespaces land before Industrial Edge and gateways.
77+
78+
## Service Interconnect (Skupper) topology
79+
80+
Red Hat Service Interconnect creates a Virtual Application Network (VAN) that bridges services across clusters without VPN or direct network connectivity.
81+
82+
Connectors expose spoke-gateway and prometheus-auth-proxy; Listeners materialize ClusterIP services on the hub.
83+
84+
[![Skupper topology](/images/hybrid-mesh-platform/arch-skupper-topology.png)](/images/hybrid-mesh-platform/arch-skupper-topology.png)
85+
86+
[![Service Interconnect console topology](/images/hybrid-mesh-platform/service-interconnect-console-topology.png)](/images/hybrid-mesh-platform/service-interconnect-console-topology.png)
87+
88+
## Spoke gateway aggregation
89+
90+
Each spoke runs a Gateway API gateway that fronts all Industrial Edge services, providing a single entry point for Skupper to expose to the hub.
91+
92+
One Connector per spoke exposes the gateway instead of every microservice individually.
93+
94+
## Multi-cluster observability pipeline
95+
96+
Spoke Thanos Querier is reached through nginx auth-proxy Connectors; hub Grafana uses HTTP datasources without bearer tokens.
97+
98+
[![Observability pipeline](/images/hybrid-mesh-platform/arch-observability-pipeline.png)](/images/hybrid-mesh-platform/arch-observability-pipeline.png)
99+
100+
## Data flow (sensors to dashboard)
101+
102+
Telemetry path on each spoke; MirrorMaker replicates to the hub-centralized MinIO data lake.
103+
104+
## Comparison with Red Hat Validated Patterns
105+
106+
The [Multicloud GitOps](/patterns/multicloud-gitops) validated pattern demonstrates fleet GitOps with OpenShift GitOps and ACM patterns that resemble this repository's hub-push model: a declarative root Application, cluster grouping, and progressive rollout.
107+
108+
This platform extends that idea with [Industrial Edge](/patterns/industrial-edge/) workloads deployed on multiple spokes, Service Mesh ambient, Connectivity Link, optional OpenShift AI, ACS depth, and Service Interconnect for cross-cluster service exposure — tuned for factory-style telemetry and east-west observability rather than only infrastructure provisioning.

0 commit comments

Comments
 (0)