Skip to content

Commit

Permalink
External: adding unit test to verify erasure code in external cluster
Browse files Browse the repository at this point in the history
Adding unit test to verify erasure coded pool in case of RBD in external
cluster.

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 22, 2021
1 parent d64079d commit 951032a
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions controllers/storagecluster/external_resources_test.go
Expand Up @@ -557,3 +557,52 @@ func TestExternalMonitoringResources(t *testing.T) {
})
}
}

func TestErasureCodedExternalResources(t *testing.T) {
cr := &api.StorageCluster{
ObjectMeta: metav1.ObjectMeta{
Name: "ocsinit",
Namespace: "openshift-storage",
},
Spec: api.StorageClusterSpec{
ExternalStorage: api.ExternalStorageClusterSpec{
Enable: true,
},
Monitoring: &api.MonitoringSpec{
ReconcileStrategy: string(ReconcileStrategyIgnore),
},
},
}
externalResource := []ExternalResource{
{
Name: "ceph-rbd",
Kind: "StorageClass",
Data: map[string]string{
"pool": generateNameForCephBlockPool(cr),
},
},
{
Name: "ceph-rbd-ec",
Kind: "StorageClass",
Data: map[string]string{
"dataPool": "ec-data-pool",
"pool": "replicated-metadata-pool",
},
},
}

for _, extR := range externalResource {
t.Run(extR.Name, func(t *testing.T) {
actualSC := newCephBlockPoolStorageClassConfiguration(cr)
// To override the values for external cluster
for k, v := range extR.Data {
actualSC.storageClass.Parameters[k] = v
}
assert.NotEmpty(t, actualSC.storageClass.Parameters["clusterID"])
assert.Equal(t, extR.Data["dataPool"], actualSC.storageClass.Parameters["dataPool"])
assert.Equal(t, extR.Data["pool"], actualSC.storageClass.Parameters["pool"])
assert.NotEmpty(t, actualSC.storageClass.Parameters["csi.storage.k8s.io/provisioner-secret-name"])
assert.NotEmpty(t, actualSC.storageClass.Parameters["csi.storage.k8s.io/provisioner-secret-namespace"])
})
}
}

0 comments on commit 951032a

Please sign in to comment.