|
| 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/hybrid-mesh-platform |
| 25 | + install: getting-started |
| 26 | + bugs: https://github.com/maximilianoPizarro/hybrid-mesh-platform/issues |
| 27 | + feedback: https://docs.google.com/forms/d/e/1FAIpQLScI76b6tD1WyPu2-d_9CCVDr3Fu5jYERthqLKJDUGwqBg7Vcg/viewform |
| 28 | +tested_on: |
| 29 | + platform: AWS |
| 30 | + ocp_version: "4.20" |
| 31 | + topology: "3 clusters (hub + east spoke + west spoke)" |
| 32 | +contributor: |
| 33 | + name: Maximiliano Pizarro |
| 34 | + contact: mailto:maximilianopizarro5@gmail.com |
| 35 | + git: https://github.com/maximilianoPizarro |
| 36 | +--- |
| 37 | + |
| 38 | +# Hybrid Mesh Platform |
| 39 | + |
| 40 | +**Maintainer:** Maximiliano Pizarro, Specialist Solution Architect at Red Hat |
| 41 | + |
| 42 | +> **Your journey:** This platform installs via the Validated Patterns framework (`./pattern.sh install`), connects three OpenShift clusters (hub + east + west) through ACM managedClusterGroups, 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. |
| 43 | +
|
| 44 | +## What is Hybrid Mesh Platform? |
| 45 | + |
| 46 | +**Hybrid Mesh Platform** is a production-grade, multi-cluster GitOps reference architecture that mirrors how Red Hat customers run hybrid cloud on OpenShift. It implements a **hub-spoke topology** where: |
| 47 | + |
| 48 | +- A **hub cluster** (OpenShift on AWS) centralizes fleet governance with **ACM**, deploys via **OpenShift GitOps** (Argo CD), hosts the **Developer Hub** internal portal, runs **ACS Central** for security, aggregates observability in **Grafana**, and exposes cross-cluster services through a **Gateway API** hub gateway with circuit breaking. |
| 49 | +- Two **spoke clusters** (east and west) execute **Industrial Edge** factory workloads — MQTT sensors, Kafka pipelines, ML inference, and dashboards — connected to the hub via a **Skupper Virtual Application Network** (no VPN or firewall changes). |
| 50 | +- **OpenShift Service Mesh 3** in **ambient mode** (no sidecars) provides ztunnel-based L4 encryption and optional waypoint L7 policy across all clusters. |
| 51 | +- **Connectivity Link (Kuadrant)** layers API-aware ingress policies — rate limiting, auth, DNS/TLS automation — on top of Gateway API. |
| 52 | + |
| 53 | +The result is a reference design you can adopt, extend, or customize for factory IoT, fleet management, or any workload that requires centralized governance with distributed execution. |
| 54 | + |
| 55 | +**Tested on:** Red Hat OpenShift Container Platform **4.20** on **AWS** (hub + east spoke + west spoke, multinode 3 workers each). Compatible with 4.14+ per cluster. |
| 56 | + |
| 57 | +**Implementation repo:** [hybrid-mesh-platform](https://github.com/maximilianoPizarro/hybrid-mesh-platform) — Validated Patterns layout (`clustergroup`, Vault + External Secrets, ACM managedClusterGroups). The legacy [platform-hub-spoke-config](https://github.com/maximilianoPizarro/platform-hub-spoke-config) App-of-Apps repo remains frozen for live workshop deployments until cutover. |
| 58 | + |
| 59 | +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](https://github.com/maximilianoPizarro/hybrid-mesh-platform). |
| 60 | + |
| 61 | +[](/images/hybrid-mesh-platform/workshop-hybrid-mesh.png) |
| 62 | + |
| 63 | +_Hub cluster aggregates observability and Developer Hub; east and west spokes run Industrial Edge workloads connected via Service Interconnect (Skupper). Click the image to open the full diagram._ |
| 64 | + |
| 65 | +## Hub-spoke architecture at a glance |
| 66 | + |
| 67 | +The platform simulates a production hybrid mesh with three clusters on AWS: |
| 68 | + |
| 69 | +| Cluster | Role | Key components | |
| 70 | +| --- | --- | --- | |
| 71 | +| **Hub** | Fleet governance and centralized services | ACM, OpenShift GitOps (Argo CD), Developer Hub, OpenShift AI, Service Mesh control plane, Skupper listeners, Kuadrant, ACS Central, Grafana, Kafka Console, Kubecost | |
| 72 | +| **East spoke** | Factory workloads and developer tools | Industrial Edge (sensors, Kafka, Camel, ML), DevSpaces (Kaoto + Continue AI), Kairos SmartScaling, spoke-local Argo CD | |
| 73 | +| **West spoke** | Workload replicas and cross-cluster validation | Industrial Edge replicas, MirrorMaker replication to hub, Skupper connectors for cross-cluster traffic | |
| 74 | + |
| 75 | +Industrial Edge components exist **only** on spokes. The hub never hosts factory sensor workloads — it aggregates their metrics and provides gateway access. |
| 76 | + |
| 77 | +## Service mesh and traffic flow |
| 78 | + |
| 79 | +The platform uses OpenShift Service Mesh 3 in **ambient mode** — no sidecars injected into application pods. Per-node ztunnels handle L4 mTLS encryption transparently; optional waypoint proxies provide L7 policy where needed. |
| 80 | + |
| 81 | +Traffic between hub and spokes crosses a **Skupper mTLS tunnel** exposed via Gateway API: |
| 82 | + |
| 83 | +- **`HTTPRoute`** resources on the hub split traffic to east/west backends (frontend 50/50 weighted, API pinned to a single spoke for Socket.IO session affinity) |
| 84 | +- **`DestinationRule`** circuit breaking (outlier detection) ejects unhealthy endpoints after consecutive 5xx errors |
| 85 | +- **`AuthorizationPolicy`** (zero-trust) restricts which service accounts can reach backends — only the hub gateway SA is authorized |
| 86 | + |
| 87 | +This means external clients hit the hub OpenShift router → Istio gateway → waypoint (circuit breaker) → Skupper tunnel → spoke backend, all with mTLS end-to-end. |
| 88 | + |
| 89 | +[](/images/hybrid-mesh-platform/arch-overview.png) |
| 90 | + |
| 91 | +_Detailed architecture showing Git repo structure, ACM placement, Skupper VAN, and sync-wave delivery to east/west spokes._ |
| 92 | + |
| 93 | +## OpenShift AI — Model as a Service |
| 94 | + |
| 95 | +The AI layer provides a shared LLM endpoint (**MaaS**) deployed on the hub via the OpenShift AI operator (`DataScienceCluster`). Components include dashboard, workbenches, model mesh, data science pipelines, and KServe. |
| 96 | + |
| 97 | +Any application that speaks the OpenAI REST API can consume MaaS without code changes — point `OPENAI_API_BASE` to the in-cluster service. Spoke workloads reach MaaS through Skupper connectors, enabling inference from factory pipelines without direct network routes to the hub. |
| 98 | + |
| 99 | +## Kuadrant API gateway |
| 100 | + |
| 101 | +Kuadrant manages API rate limiting and auth policies across the hub gateway. Per-user API keys scoped to plans enable controlled access to AI endpoints and platform APIs: |
| 102 | + |
| 103 | +- **`APIProduct`** — exposes endpoints under a single managed product with host-based routing |
| 104 | +- **`AuthPolicy`** — identity verification via API keys or OAuth tokens |
| 105 | +- **`TokenRateLimitPolicy`** — per-key rate limits (for example 100 req/min per user) |
| 106 | + |
| 107 | +This enables self-service API consumption for developers and workshop participants while protecting backend services from overload. |
| 108 | + |
| 109 | +Architecture diagrams illustrate Git, **ACM fleet management**, **ACS Central**, Skupper VAN, Connectivity Link, and Industrial Edge on east/west — use them as the visual companion to the install chapters (see [Architecture](architecture) for ACM and ACS console views). |
| 110 | + |
| 111 | +## Quick links |
| 112 | + |
| 113 | +| Topic | Page | |
| 114 | +| --- | --- | |
| 115 | +| Architecture deep dive | [Architecture](architecture) | |
| 116 | +| Install flow | [Getting Started](getting-started) | |
| 117 | +| Hub Gateway and Connectivity Link | [Hub Gateway](hub-gateway) | |
| 118 | +| Observability | [Observability](observability) | |
| 119 | +| Industrial Edge (multi-cluster) | [Industrial Edge](industrial-edge) | |
| 120 | +| Scaffolding | [Scaffolding](scaffolding) | |
| 121 | +| Branch strategy and customization | [Ideas for customization](ideas-for-customization) | |
| 122 | + |
| 123 | +## Recommended reading order |
| 124 | + |
| 125 | +1. [Architecture](architecture) — mental model of hub, spokes, GitOps, Skupper, and observability |
| 126 | +2. [Getting Started](getting-started) — bring clusters under GitOps (includes ACM + ApplicationSet detail) |
| 127 | +3. [Scaffolding](scaffolding) — deploy Industrial Edge instances on east/west from Developer Hub |
| 128 | +4. [Hub Gateway](hub-gateway) — weighted ingress and circuit breaking across spokes |
| 129 | +5. [Observability](observability) — Grafana, Kiali, Kafka Console |
| 130 | +6. [Industrial Edge](industrial-edge) — factory data pipeline: sensors, Kafka, Camel, ML on multiple spokes |
| 131 | + |
| 132 | +Screenshots and architecture diagrams in the pattern repository support full-screen review — handy after deploying dashboards and verifying cross-cluster traffic. |
| 133 | + |
| 134 | +**Next →** [Architecture](architecture) — understand how Git, ACM, and Skupper wire the three clusters together. |
| 135 | + |
| 136 | +## Workshop — Hybrid Mesh AI |
| 137 | + |
| 138 | +A dual-track **Hybrid Mesh AI Workshop** is available for this platform: |
| 139 | + |
| 140 | +- **Part A (modules 01–05)** — Executive-oriented: hybrid cloud strategy, ROSA architecture, security at scale, AWS AI integration, and real customer cases. |
| 141 | +- **Part B (modules 10–28)** — Fully hands-on on a live RHDP hub-spoke fleet: ACM fleet management, ambient mesh, Developer Hub scaffolding, Industrial Edge deployment, Kairos SmartScaling, observability, GitOps, Service Mesh, scalability (HPA + Kafka), network policies, ACS + Connectivity Link, FinOps (Kubecost), OpenShift AI, AI Gateway (MaaS + Kuadrant), and LLM/RAG patterns. |
| 142 | + |
| 143 | +Each module targets a specific product area and includes a `verify` step to confirm work. The lab uses the same three-cluster topology documented here (hub + east + west on AWS). |
| 144 | + |
| 145 | +See the [workshop site](https://maximilianopizarro.github.io/platform-hub-spoke-config/workshop/) for agenda, registration, and YAML snippets. |
| 146 | + |
| 147 | +## Red Hat products used |
| 148 | + |
| 149 | +- Red Hat OpenShift Container Platform |
| 150 | +- Red Hat Advanced Cluster Management for Kubernetes |
| 151 | +- Red Hat OpenShift GitOps (Argo CD) |
| 152 | +- Red Hat Advanced Cluster Security for Kubernetes |
| 153 | +- Red Hat OpenShift Service Mesh |
| 154 | +- Red Hat Connectivity Link (Kuadrant, Gateway API) |
| 155 | +- Red Hat OpenShift AI |
| 156 | +- Red Hat AMQ Streams (Apache Kafka) |
| 157 | +- Red Hat build of Apache Camel / Camel K |
| 158 | +- Red Hat OpenShift Pipelines (Tekton) |
| 159 | +- Red Hat Developer Hub (Backstage) |
| 160 | +- Red Hat OpenShift Dev Spaces (Kaoto, Continue AI) |
| 161 | +- Red Hat OpenShift Virtualization (KubeVirt) |
| 162 | +- Red Hat Quay (container registry on hub) |
| 163 | +- Red Hat Service Interconnect (Skupper) |
| 164 | +- Streams for Apache Kafka Console (hub fleet UI) |
| 165 | +- Gitea (in-cluster Git for scaffolder repos) |
| 166 | +- Mailpit (SMTP testing for notifications) |
| 167 | +- Observability stack (Prometheus-compatible metrics, Grafana, OpenTelemetry, Kiali) |
0 commit comments