doc: add design proposal for topology-aware cluster selection#5986
doc: add design proposal for topology-aware cluster selection#5986WMP wants to merge 1 commit intoceph:develfrom
Conversation
Add a design document describing topology-aware multi-cluster volume provisioning. This enables the CSI driver to dynamically select the appropriate Ceph cluster at CreateVolume time based on the node's topology zone. The proposal introduces two configuration mechanisms: - topologyDomainLabels field in config.json cluster entries - clusterIDs StorageClass parameter (comma-separated list) Ref: ceph#5177 Signed-off-by: Marcin Janowski <marcin.janowski@assecobs.pl>
76965d0 to
6c1c9d7
Compare
|
Hey @WMP , Thanks for the contributions !
We would love to review and accept contributions. Before you provide design on a new feature, have you tested and understood the current working of topology based provisioning in k8s, csi and cephcsi as of today ? This would help you understand the feature and review design for proposed improvements yourself in depth. It would certainly boost our confidence for reviewing this design document. |
Describe what this PR does
Design proposal for topology-aware multi-cluster volume provisioning.
This enables the CSI driver to dynamically select the appropriate Ceph
cluster at CreateVolume time based on the node's topology zone.
The proposal introduces two new configuration mechanisms:
topologyDomainLabelsfield in config.json cluster entries — associateseach cluster with Kubernetes topology labels
clusterIDsStorageClass parameter — a comma-separated list of candidatecluster IDs for topology-based selection
This is a design-only PR. Implementation will follow in a separate PR
once the design is approved.
Is there anything that requires special attention
StorageClasses with a single
clusterIDwork unchanged.volumeBindingMode: WaitForFirstConsumeris required for topology-basedselection (Kubernetes must provide AccessibilityRequirements).
clusterIDparameter takes priority when present —topology selection is only used as a fallback via the new
clusterIDsparameter.
Related issues
Ref: #5177
Future concerns
clusterIDfully optional whenclusterIDsis providedtopologyConstrainedPoolsfor selecting both cluster and pool
Checklist: