Skip to content

Commit 51c0829

Browse files
committed
feat(docs): add connection between clusters
Signed-off-by: SkalaNetworks <contact@skala.network>
1 parent 3d76cde commit 51c0829

43 files changed

Lines changed: 2954 additions & 88 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/installation/deployment-guide/installing-an-az/configuring-a-cluster.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,5 @@ Set `connection.mode: Local` when the cluster being defined is the same Kubernet
4949
## Related
5050

5151
- [Installing an AZ](index.md): overview of AZ installation.
52-
- [Add storage classes to a cluster](../../../operations/add-storage-pools-to-a-cluster.md): hyperconverged and decoupled storage.
52+
- [Add a storage class](../../../operations/add-a-storage-class.md): hyperconverged and decoupled storage.
5353
- [Deployment topology](../../../architecture/deployment-topology.md): hyperconverged vs decoupled layouts.

docs/installation/deployment-guide/installing-an-az/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ Once the [management plane is installed](../installing-management/index.md), you
77
- **[Installing hyperconverged](installing-hyperconverged.md)**: storage and virtualization on the same cluster.
88
- **[Installing decoupled](installing-decoupled.md)**: dedicated storage and workload clusters.
99
- **[Configure a cluster](configuring-a-cluster.md)**: geography, connection mode, and system configuration for a `Cluster` resource.
10-
- **[Add storage classes to a cluster](../../../operations/add-storage-pools-to-a-cluster.md)**: attach storage to hyperconverged or decoupled clusters.
10+
- **[Add a storage class](../../../operations/add-a-storage-class.md)**: attach storage to hyperconverged or decoupled clusters.

docs/installation/deployment-guide/installing-an-az/installing-decoupled.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ See [Deployment topology](../../../architecture/deployment-topology.md) for the
2020

2121
1. Provision a **storage** cluster and one or more **workload** clusters.
2222
2. Register each with a `Cluster` resource (`deploymentTopology: Decoupled`, with `type: Storage` or `type: Virtualization`).
23-
3. [Add storage classes to the workload cluster](../../../operations/add-storage-pools-to-a-cluster.md#adding-a-block-storage-class).
23+
3. [Add a storage class to the workload cluster](../../../operations/add-a-storage-class.md#adding-a-block-storage-class).
2424
4. Let the operator sync the Superphenix stack on each cluster.
2525

2626
## Installing a workload and storage cluster
@@ -84,4 +84,4 @@ helm upgrade superphenix-operator \
8484

8585
You can monitor the status of the `Cluster` CR to check how far along the installion is.
8686

87-
You'll then need to [add storage classes to the workload cluster](../../../operations/add-storage-pools-to-a-cluster.md#adding-a-block-storage-class).
87+
You'll then need to [add a storage class to the workload cluster](../../../operations/add-a-storage-class.md#adding-a-block-storage-class).

docs/installation/deployment-guide/installing-the-os/automated-os-installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ The operator reads `Cluster` (and related) resources in the `superphenix-system`
3939
2. Register physical servers (BMC credentials, MAC addresses, desired role) with the talos-operator.
4040
3. Define `Cluster` resources that describe topology, geography, and connection mode.
4141
4. Let the operator provision Talos on the servers, bootstrap Kubernetes, and install the Superphenix stack.
42-
5. Connect decoupled storage and workload clusters as needed. See [Add storage classes to a cluster](../../../operations/add-storage-pools-to-a-cluster.md#adding-a-block-storage-class).
42+
5. Connect decoupled storage and workload clusters as needed. See [Connecting a workload and storage cluster](../../../operations/connecting-a-workload-and-storage-cluster.md).
4343

4444
## Step 1: Install the operator
4545

docs/operations/add-storage-pools-to-a-cluster.md renamed to docs/operations/add-a-storage-class.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Add storage classes to a cluster
1+
# Add a storage class
22

33
**Storage classes** are how end users choose what type of storage they get on the platform. When someone creates a disk or bucket, they pick a class that defines what they get: media type (HDD, SSD, NVMe), QoS (IOPS, bandwidth), data protection (replication, erasure coding), and options such as encryption.
44

@@ -189,6 +189,9 @@ Add the block storage class under `systemConfiguration` on the `Cluster` resourc
189189

190190
=== "Decoupled"
191191

192+
!!! info
193+
Values used to connect to a remote cluster are detailed in [Connecting a workload and storage cluster](connecting-a-workload-and-storage-cluster.md#consuming-block-storage).
194+
192195
On a decoupled AZ, create the storage class on the **workload** cluster and connect it to a pool on the **storage** cluster. That requires Ceph connection details (`clusterID`, credentials, bootstrap MON, and health check) plus the pool and storage class definitions.
193196

194197
```yaml
@@ -286,6 +289,9 @@ Add the object storage class under `systemConfiguration` on the `Cluster` resour
286289

287290
=== "Decoupled"
288291

292+
!!! info
293+
Values used to connect to a remote cluster are detailed in [Connecting a workload and storage cluster](connecting-a-workload-and-storage-cluster.md#consuming-object-storage).
294+
289295
On a decoupled AZ, create the object storage class on the **workload** cluster and connect it to an object store on the **storage** cluster. That requires Ceph connection details, the remote RGW endpoints, and the object store storage class definitions.
290296

291297
```yaml
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Connecting a workload and storage cluster
2+
3+
In a **decoupled** AZ, storage and workloads run on separate Superphenix clusters. Before a workload cluster can expose block or object storage classes to tenants, you must connect it to one or more storage clusters.
4+
5+
The relationship is many-to-many:
6+
7+
- One **workload** cluster can connect to **many** storage clusters.
8+
- One **storage** cluster can be consumed by **many** workload clusters.
9+
10+
This article applies only to **decoupled** deployments. On hyperconverged clusters, storage and workloads already share the same cluster, so no cross-cluster connection is required.
11+
12+
Apply this configuration under `systemConfiguration` on the **workload** `Cluster` resource (or via the `superphenix-operator` Helm chart), using the **`rook-connection`** chart.
13+
14+
## Consuming block storage
15+
16+
Connect the workload cluster to a storage cluster so it can consume Ceph block pools. After the connection is in place, expose pools to tenants with [block storage classes](add-a-storage-class.md#adding-a-block-storage-class).
17+
18+
```yaml
19+
systemConfiguration:
20+
rook-connection:
21+
helm:
22+
values:
23+
clusters:
24+
- name: "[storage-cluster-name]" # The name of the remote storage cluster
25+
# Ceph cluster ID (FSID), e.g. e2a62ea1-6428-496e-a5bf-366936a8c833
26+
clusterID: ""
27+
username: "[csi-user]"
28+
token: ""
29+
# Initial MON used to retrieve the full MON list
30+
bootstrapMon:
31+
# MON ID (must be a single letter)
32+
id: ""
33+
# IP of the MON
34+
ip: ""
35+
# Port of the MON
36+
port: "6789"
37+
# Protocol of the IP (IPv4 or IPv6)
38+
protocol: IPv6
39+
# Used by Rook to check remote cluster health and refresh the MON list
40+
healthCheck:
41+
username: "client.csi-health"
42+
token: ""
43+
```
44+
45+
## Consuming object storage
46+
47+
Connect the workload cluster to a storage cluster so it can consume an RGW object store. After the connection is in place, expose the store to tenants with [object storage classes](add-a-storage-class.md#adding-an-object-storage-class).
48+
49+
```yaml
50+
systemConfiguration:
51+
rook-connection:
52+
helm:
53+
values:
54+
clusters:
55+
- name: "[storage-cluster-name]" # The name of the remote storage cluster
56+
# Ceph cluster ID (FSID), e.g. e2a62ea1-6428-496e-a5bf-366936a8c833
57+
clusterID: ""
58+
username: "[csi-user]"
59+
token: ""
60+
# Initial MON used to retrieve the full MON list
61+
bootstrapMon:
62+
# MON ID (must be a single letter)
63+
id: ""
64+
# IP of the MON
65+
ip: ""
66+
# Port of the MON
67+
port: "6789"
68+
# Protocol of the IP (IPv4 or IPv6)
69+
protocol: IPv6
70+
# Used by Rook to check remote cluster health and refresh the MON list
71+
healthCheck:
72+
username: "client.csi-health"
73+
token: ""
74+
objectStores:
75+
- name: "[object-store-name]" # CephObjectStore CR name (also used to derive the TLS secret name)
76+
# External RGW endpoints. Each entry accepts either `ip` or `hostname`.
77+
endpoints:
78+
- ip: ""
79+
# hostname: ""
80+
# Gateway HTTP port
81+
port: 80
82+
# Gateway HTTPS port (only set when TLS is enabled)
83+
# securePort: 443
84+
# TLS configuration for the remote RGW
85+
# tls:
86+
# enabled: false
87+
# # PEM-encoded certificate the operator will trust when talking to the RGW
88+
# cert: ""
89+
```
90+
91+
For advanced connection options, see the [spx-rook-connection](https://github.com/super-phenix/superphenix/tree/main/components/dependencies/spx-rook-connection) chart values.

site/404.html

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,14 +1361,41 @@
13611361

13621362

13631363
<li class="md-nav__item">
1364-
<a href="/operations/add-storage-pools-to-a-cluster/" class="md-nav__link">
1364+
<a href="/operations/connecting-a-workload-and-storage-cluster/" class="md-nav__link">
13651365

13661366

13671367

13681368
<span class="md-ellipsis">
13691369

13701370

1371-
Add storage classes to a cluster
1371+
Connecting a workload and storage cluster
1372+
1373+
1374+
</span>
1375+
1376+
1377+
1378+
</a>
1379+
</li>
1380+
1381+
1382+
1383+
1384+
1385+
1386+
1387+
1388+
1389+
1390+
<li class="md-nav__item">
1391+
<a href="/operations/add-a-storage-class/" class="md-nav__link">
1392+
1393+
1394+
1395+
<span class="md-ellipsis">
1396+
1397+
1398+
Add a storage class
13721399

13731400

13741401
</span>

site/architecture/deployment-requirements/index.html

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1517,14 +1517,41 @@
15171517

15181518

15191519
<li class="md-nav__item">
1520-
<a href="../../operations/add-storage-pools-to-a-cluster/" class="md-nav__link">
1520+
<a href="../../operations/connecting-a-workload-and-storage-cluster/" class="md-nav__link">
15211521

15221522

15231523

15241524
<span class="md-ellipsis">
15251525

15261526

1527-
Add storage classes to a cluster
1527+
Connecting a workload and storage cluster
1528+
1529+
1530+
</span>
1531+
1532+
1533+
1534+
</a>
1535+
</li>
1536+
1537+
1538+
1539+
1540+
1541+
1542+
1543+
1544+
1545+
1546+
<li class="md-nav__item">
1547+
<a href="../../operations/add-a-storage-class/" class="md-nav__link">
1548+
1549+
1550+
1551+
<span class="md-ellipsis">
1552+
1553+
1554+
Add a storage class
15281555

15291556

15301557
</span>

site/architecture/deployment-topology/index.html

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1545,14 +1545,41 @@
15451545

15461546

15471547
<li class="md-nav__item">
1548-
<a href="../../operations/add-storage-pools-to-a-cluster/" class="md-nav__link">
1548+
<a href="../../operations/connecting-a-workload-and-storage-cluster/" class="md-nav__link">
15491549

15501550

15511551

15521552
<span class="md-ellipsis">
15531553

15541554

1555-
Add storage classes to a cluster
1555+
Connecting a workload and storage cluster
1556+
1557+
1558+
</span>
1559+
1560+
1561+
1562+
</a>
1563+
</li>
1564+
1565+
1566+
1567+
1568+
1569+
1570+
1571+
1572+
1573+
1574+
<li class="md-nav__item">
1575+
<a href="../../operations/add-a-storage-class/" class="md-nav__link">
1576+
1577+
1578+
1579+
<span class="md-ellipsis">
1580+
1581+
1582+
Add a storage class
15561583

15571584

15581585
</span>

site/architecture/index.html

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1483,14 +1483,41 @@
14831483

14841484

14851485
<li class="md-nav__item">
1486-
<a href="../operations/add-storage-pools-to-a-cluster/" class="md-nav__link">
1486+
<a href="../operations/connecting-a-workload-and-storage-cluster/" class="md-nav__link">
14871487

14881488

14891489

14901490
<span class="md-ellipsis">
14911491

14921492

1493-
Add storage classes to a cluster
1493+
Connecting a workload and storage cluster
1494+
1495+
1496+
</span>
1497+
1498+
1499+
1500+
</a>
1501+
</li>
1502+
1503+
1504+
1505+
1506+
1507+
1508+
1509+
1510+
1511+
1512+
<li class="md-nav__item">
1513+
<a href="../operations/add-a-storage-class/" class="md-nav__link">
1514+
1515+
1516+
1517+
<span class="md-ellipsis">
1518+
1519+
1520+
Add a storage class
14941521

14951522

14961523
</span>

0 commit comments

Comments
 (0)