Skip to content

Commit 4f36ef8

Browse files
Document ACM and ACS with dedicated sections and screenshots.
Add architecture narrative for fleet management and Central/SecuredCluster topology, ACS-2 console image, and expanded getting-started operator guidance. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent d41aebb commit 4f36ef8

4 files changed

Lines changed: 88 additions & 5 deletions

File tree

content/patterns/hybrid-mesh-platform/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ This repository models a **GitOps-first platform** where:
6161

6262
_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._
6363

64-
Architecture diagrams in this documentation illustrate Git, ACM, Skupper VAN, and Industrial Edge placement on east/west — use them as the visual companion to the install chapters.
64+
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).
6565

6666
## Quick links
6767

content/patterns/hybrid-mesh-platform/architecture.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,59 @@ In parallel:
8181

8282
Industrial Edge components exist **only** in spoke charts. The hub chart never includes factory workloads.
8383

84+
## Advanced Cluster Management (ACM)
85+
86+
Red Hat Advanced Cluster Management for Kubernetes (ACM) provides fleet-wide visibility and lifecycle for OpenShift clusters. In Hybrid Mesh Platform it anchors hub-spoke registration, policy placement, and integration with OpenShift GitOps via `GitOpsCluster` and related APIs.
87+
88+
[![ACM fleet management — east and west managed clusters on the hub](/images/hybrid-mesh-platform/ACM.png)](/images/hybrid-mesh-platform/ACM.png)
89+
90+
### Role in this solution
91+
92+
- Inventory managed clusters (`hub`, `east`, `west`) and apply governance policies consistently.
93+
- Drive which spokes receive Industrial Edge and platform components through **Placement** rules (`region=east`, `region=west`).
94+
- Coordinate klusterlet agents, `ManagedClusterSet` membership, and secrets required for spoke import.
95+
- Publish **PlacementDecision** objects consumed by the Argo CD ApplicationSet (`clusterDecisionResource` generator).
96+
97+
### Notable APIs / CRDs
98+
99+
| Resource | Purpose |
100+
| --- | --- |
101+
| `MultiClusterHub` | Hub installation health |
102+
| `ManagedCluster`, `ManagedClusterSet` | Fleet membership and RBAC grouping |
103+
| `Placement`, `PlacementDecision` | Dynamic cluster selection for GitOps |
104+
| `GitOpsCluster` | Binds placement results to Argo CD cluster secrets |
105+
106+
Charts: `components/acm-operator`, `components/acm-hub-spoke`. Verify with `oc get managedcluster` and PlacementDecision in `openshift-gitops`.
107+
108+
## Advanced Cluster Security (ACS)
109+
110+
Red Hat Advanced Cluster Security for Kubernetes (ACS) centralizes build-time image scanning, deployment-time policy, and runtime detection across the fleet.
111+
112+
[![ACS Central — hub, east, and west registered](/images/hybrid-mesh-platform/ACS.png)](/images/hybrid-mesh-platform/ACS.png)
113+
114+
[![ACS Central — policies, vulnerabilities, and runtime visibility](/images/hybrid-mesh-platform/ACS-2.png)](/images/hybrid-mesh-platform/ACS-2.png)
115+
116+
### Hub-spoke topology
117+
118+
| Component | Location | Role |
119+
| --- | --- | --- |
120+
| **Central** | Hub | Policy console, vulnerability database, admission coordination |
121+
| **SecuredCluster** | Hub + spokes | Sensor, collector, and admission control per cluster |
122+
123+
Cluster names in Central: **`hub`**, **`east`**, **`west`**. Init bundles (TLS secrets in namespace `stackrox`) register each SecuredCluster with Central.
124+
125+
### Service mesh exception
126+
127+
Namespace `stackrox` is listed in `$noMeshNamespaces` (`components/namespaces`) — **do not** label it `istio.io/dataplane-mode: ambient`. Ambient ztunnel breaks Central ↔ PostgreSQL TLS and Central becomes unreachable.
128+
129+
### Capabilities used
130+
131+
- CVE scanning for Industrial Edge and platform images (Quay/internal registry).
132+
- Risk prioritization across namespaces and clusters.
133+
- Optional network and process baselines for regulated factory environments.
134+
135+
Charts: `components/acs-operator` (hub Central), `components/acs-secured-cluster` (hub + spokes). See [Getting Started](getting-started#advanced-cluster-security-acs) for init bundle generation.
136+
84137
## GitOps application delivery flow
85138

86139
1. Hub Argo CD syncs the root Application (operators, ACM, gateway, observability).

content/patterns/hybrid-mesh-platform/getting-started.md

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,43 @@ Then continue with [Scaffolding](scaffolding) to deploy a new edge instance on e
2727

2828
## Platform operators (reference)
2929

30-
The hub chart deploys ACM, GitOps, ACS, and related operators before application workloads. Console views after sync:
30+
The hub chart deploys **ACM**, **OpenShift GitOps**, **ACS**, Service Mesh, Skupper, and related operators before application workloads.
3131

32-
[![Advanced Cluster Management — fleet view](/images/hybrid-mesh-platform/ACM.png)](/images/hybrid-mesh-platform/ACM.png)
32+
[![OpenShift GitOps — Argo CD Applications on the hub](/images/hybrid-mesh-platform/product-argocd-openshift-gitops.png)](/images/hybrid-mesh-platform/product-argocd-openshift-gitops.png)
3333

34-
[![OpenShift GitOps — Argo CD Applications](/images/hybrid-mesh-platform/product-argocd-openshift-gitops.png)](/images/hybrid-mesh-platform/product-argocd-openshift-gitops.png)
34+
### Advanced Cluster Management (ACM)
3535

36-
[![Advanced Cluster Security — central console](/images/hybrid-mesh-platform/ACS.png)](/images/hybrid-mesh-platform/ACS.png)
36+
ACM must show **`east`** and **`west`** as **Available** managed clusters before the ApplicationSet can push spoke charts.
37+
38+
[![ACM fleet management — east and west registered on the hub](/images/hybrid-mesh-platform/ACM.png)](/images/hybrid-mesh-platform/ACM.png)
39+
40+
Verify:
41+
42+
```bash
43+
oc get managedcluster
44+
oc get multiclusterhub -n open-cluster-management
45+
```
46+
47+
Spoke names must match repository folders (`east`, `west`). Placement labels drive ApplicationSet targeting — see [Step 4](#step-4-import-managed-clusters-in-acm) and [Deploy with ACM and GitOps](#deploy-with-acm-and-gitops).
48+
49+
### Advanced Cluster Security (ACS)
50+
51+
ACS Central runs on the hub; **SecuredCluster** agents install on hub and both spokes. All three clusters appear in the Central UI when init bundles are applied.
52+
53+
[![ACS Central — hub, east, and west clusters](/images/hybrid-mesh-platform/ACS.png)](/images/hybrid-mesh-platform/ACS.png)
54+
55+
[![ACS Central — policies and vulnerability views](/images/hybrid-mesh-platform/ACS-2.png)](/images/hybrid-mesh-platform/ACS-2.png)
56+
57+
#### Generating SecuredCluster init bundles
58+
59+
Generate one init bundle per cluster from Central (do not commit secrets to Git):
60+
61+
```bash
62+
roxctl -e central.stackrox:443 --password "$ROX_ADMIN_PASSWORD" --insecure-skip-tls-verify \
63+
central init-bundles generate <cluster-name> --output-secrets - | oc apply -n stackrox -f -
64+
```
65+
66+
Use cluster names **`hub`**, **`east`**, and **`west`**. Namespace **`stackrox`** must stay **off** Service Mesh ambient — see [Architecture — ACS](architecture#advanced-cluster-security-acs).
3767

3868
## Prerequisites
3969

192 KB
Loading

0 commit comments

Comments
 (0)