Skip to content

Commit

Permalink
External: configure sc properties for external cluster EC RBD pool
Browse files Browse the repository at this point in the history
Adding extra field in storageClass "dataPool" when pool is
erasure coded pool in case of RBD.

Links:
1) storageClass https://github.com/rook/rook/blob/master/deploy/examples/csi/rbd/storageclass-ec.yaml#L45
2) Json Blob in case of EC RBD pool rook/rook#9276 (comment)

Signed-off-by: subhamkrai <srai@redhat.com>
  • Loading branch information
subhamkrai committed Dec 16, 2021
1 parent 14d3d7f commit 40069ff
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 5 deletions.
2 changes: 1 addition & 1 deletion controllers/storagecluster/external_resources.go
Expand Up @@ -308,7 +308,7 @@ func (r *StorageClusterReconciler) createExternalStorageClusterResources(instanc
scc = newCephFilesystemStorageClassConfiguration(instance)
enableRookCSICephFS = true
} else if d.Name == cephRbdStorageClassName {
scc = newCephBlockPoolStorageClassConfiguration(instance)
scc = newCephBlockPoolStorageClassConfiguration(instance, d.Data["dataPool"])
} else if d.Name == cephRgwStorageClassName {
rgwEndpoint := d.Data[externalCephRgwEndpointKey]
if err := checkEndpointReachable(rgwEndpoint, 5*time.Second); err != nil {
Expand Down
3 changes: 2 additions & 1 deletion controllers/storagecluster/external_resources_test.go
Expand Up @@ -44,7 +44,8 @@ var globalTestExternalResources = []ExternalResource{
{
Kind: "StorageClass",
Data: map[string]string{
"pool": "device_health_metrics",
"pool": "device_health_metrics",
"dataPool": "ec-data-pool",
},
Name: "ceph-rbd",
},
Expand Down
4 changes: 4 additions & 0 deletions controllers/storagecluster/generate.go
Expand Up @@ -27,6 +27,10 @@ func generateNameForCephBlockPool(initData *ocsv1.StorageCluster) string {
return fmt.Sprintf("%s-cephblockpool", initData.Name)
}

func generateNameForEcCephBlockPool(initData *ocsv1.StorageCluster) string {
return fmt.Sprintf("ec-%s-cephblockpool", initData.Name)
}

func generateNameForCephObjectStore(initData *ocsv1.StorageCluster) string {
return fmt.Sprintf("%s-%s", initData.Name, "cephobjectstore")
}
Expand Down
12 changes: 9 additions & 3 deletions controllers/storagecluster/storageclasses.go
Expand Up @@ -194,11 +194,11 @@ func newCephFilesystemStorageClassConfiguration(initData *ocsv1.StorageCluster)
}

// newCephBlockPoolStorageClassConfiguration generates configuration options for a Ceph Block Pool StorageClass.
func newCephBlockPoolStorageClassConfiguration(initData *ocsv1.StorageCluster) StorageClassConfiguration {
func newCephBlockPoolStorageClassConfiguration(initData *ocsv1.StorageCluster, dataPool string) StorageClassConfiguration {
persistentVolumeReclaimDelete := corev1.PersistentVolumeReclaimDelete
allowVolumeExpansion := true
managementSpec := initData.Spec.ManagedResources.CephBlockPools
return StorageClassConfiguration{
sc := StorageClassConfiguration{
storageClass: &storagev1.StorageClass{
ObjectMeta: metav1.ObjectMeta{
Name: generateNameForCephBlockPoolSC(initData),
Expand Down Expand Up @@ -228,6 +228,12 @@ func newCephBlockPoolStorageClassConfiguration(initData *ocsv1.StorageCluster) S
disable: managementSpec.DisableStorageClass,
isClusterExternal: initData.Spec.ExternalStorage.Enable,
}
if dataPool != "" {
sc.storageClass.Parameters = map[string]string{
"dataPool": generateNameForEcCephBlockPool(initData),
}
}
return sc
}

// newCephOBCStorageClassConfiguration generates configuration options for a Ceph Object Store StorageClass.
Expand Down Expand Up @@ -261,7 +267,7 @@ func newCephOBCStorageClassConfiguration(initData *ocsv1.StorageCluster) Storage
func (r *StorageClusterReconciler) newStorageClassConfigurations(initData *ocsv1.StorageCluster) ([]StorageClassConfiguration, error) {
ret := []StorageClassConfiguration{
newCephFilesystemStorageClassConfiguration(initData),
newCephBlockPoolStorageClassConfiguration(initData),
newCephBlockPoolStorageClassConfiguration(initData, ""),
}
// OBC storageclass will be returned only in TWO conditions,
// a. either 'externalStorage' is enabled
Expand Down

0 comments on commit 40069ff

Please sign in to comment.