ceph-csi icon indicating copy to clipboard operation
ceph-csi copied to clipboard

Support for multiple Ceph clusters with the same StorageClass based on node topology labels

Open diogenxs opened this issue 9 months ago • 0 comments

Describe the feature you'd like to have

I would like to be able to connect to different Ceph clusters based on node topology labels rather than being restricted to a single clusterID per StorageClass. This feature should allow clusterID to be defined within each pool configuration under a common StorageClass, leveraging topologyConstrainedPools.

What is the value to the end user? (why is it a priority?)

This feature would enable end users who manage multiple Ceph clusters across various topologies to utilize a single StorageClass configuration.

How will we know we have a good solution? (acceptance criteria)

Users can specify multiple Ceph clusters within a single StorageClass, associated with different topology labels. ceph-csi can dynamically determine the correct Ceph cluster to interact with based on the node's topology label during volume provisioning.

apiVersion: storage.k8s.io/v1
kind: StorageClass
parameters:
...
  topologyConstrainedPools: [
      {
        "clusterID": "east",
        "poolName":"pool0",
        "dataPool":"ec-pool0" # optional, erasure-coded pool for data
        "domainSegments":[
          {"domainLabel":"region","value":"east"},
          {"domainLabel":"zone","value":"zone1"}
        ]
      },
      {
        "clusterID": "east",
        "poolName":"pool1",
        "dataPool":"ec-pool1" # optional, erasure-coded pool for data
        "domainSegments":[
          {"domainLabel":"region","value":"east"},
          {"domainLabel":"zone","value":"zone2"}
        ]
      },
      {
        "clusterID": "west",
        "poolName":"pool2",
        "dataPool":"ec-pool2" # optional, erasure-coded pool for data
        "domainSegments":[
          {"domainLabel":"region","value":"west"},
          {"domainLabel":"zone","value":"zone1"}
        ]
      }
    ]

Additional context

https://ceph-storage.slack.com/archives/C05522L7P60/p1715118579305879

diogenxs avatar May 10 '24 20:05 diogenxs