e2e: add backend image validation for rbd

validate backend rbd images count in each
E2E test cases. This helps a lot to catch
the issues in each test case.

Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
(cherry picked from commit d5c19954c1)
This commit is contained in:
Madhu Rajanna 2020-08-17 14:07:19 +05:30 committed by mergify[bot]
parent d18dd87de3
commit 8ab04d4160

View File

@ -213,16 +213,34 @@ var _ = Describe("RBD", func() {
By("create a PVC and Bind it to an app", func() { By("create a PVC and Bind it to an app", func() {
validatePVCAndAppBinding(pvcPath, appPath, f) validatePVCAndAppBinding(pvcPath, appPath, f)
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("create a PVC and Bind it to an app with normal user", func() { By("create a PVC and Bind it to an app with normal user", func() {
validateNormalUserPVCAccess(pvcPath, f) validateNormalUserPVCAccess(pvcPath, f)
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("create a PVC and Bind it to an app with ext4 as the FS ", func() { By("create a PVC and Bind it to an app with ext4 as the FS ", func() {
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, map[string]string{"csi.storage.k8s.io/fstype": "ext4"}) createRBDStorageClass(f.ClientSet, f, nil, map[string]string{"csi.storage.k8s.io/fstype": "ext4"})
validatePVCAndAppBinding(pvcPath, appPath, f) validatePVCAndAppBinding(pvcPath, appPath, f)
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, nil) createRBDStorageClass(f.ClientSet, f, nil, nil)
}) })
@ -231,6 +249,12 @@ var _ = Describe("RBD", func() {
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, map[string]string{"encrypted": "true"}) createRBDStorageClass(f.ClientSet, f, nil, map[string]string{"encrypted": "true"})
validateEncryptedPVCAndAppBinding(pvcPath, appPath, "", f) validateEncryptedPVCAndAppBinding(pvcPath, appPath, "", f)
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, nil) createRBDStorageClass(f.ClientSet, f, nil, nil)
}) })
@ -243,6 +267,12 @@ var _ = Describe("RBD", func() {
} }
createRBDStorageClass(f.ClientSet, f, nil, scOpts) createRBDStorageClass(f.ClientSet, f, nil, scOpts)
validateEncryptedPVCAndAppBinding(pvcPath, appPath, "vault", f) validateEncryptedPVCAndAppBinding(pvcPath, appPath, "vault", f)
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, nil) createRBDStorageClass(f.ClientSet, f, nil, nil)
}) })
@ -432,6 +462,12 @@ var _ = Describe("RBD", func() {
}(&wg, i, *pvcClone, *appClone) }(&wg, i, *pvcClone, *appClone)
} }
wg.Wait() wg.Wait()
// validate created backend rbd images
images = listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
} }
}) })
@ -587,6 +623,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("Resize Filesystem PVC and check application directory size", func() { By("Resize Filesystem PVC and check application directory size", func() {
@ -612,6 +654,12 @@ var _ = Describe("RBD", func() {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
} }
}) })
@ -629,6 +677,12 @@ var _ = Describe("RBD", func() {
e2elog.Logf("failed to resize block PVC %v", err) e2elog.Logf("failed to resize block PVC %v", err)
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
} }
}) })
@ -649,6 +703,12 @@ var _ = Describe("RBD", func() {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 1 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 1)
Fail("validate backend image failed")
}
// delete rbd nodeplugin pods // delete rbd nodeplugin pods
err = deletePodWithLabel("app=csi-rbdplugin", cephCSINamespace, false) err = deletePodWithLabel("app=csi-rbdplugin", cephCSINamespace, false)
if err != nil { if err != nil {
@ -664,6 +724,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images = listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("create PVC in storageClass with volumeNamePrefix", func() { By("create PVC in storageClass with volumeNamePrefix", func() {
@ -682,6 +748,12 @@ var _ = Describe("RBD", func() {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 1 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 1)
Fail("validate backend image failed")
}
// list RBD images and check if one of them has the same prefix // list RBD images and check if one of them has the same prefix
foundIt := false foundIt := false
for _, imgName := range listRBDImages(f) { for _, imgName := range listRBDImages(f) {
@ -697,6 +769,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images = listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, nil) createRBDStorageClass(f.ClientSet, f, nil, nil)
@ -710,6 +788,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("validate RBD static Block PVC", func() { By("validate RBD static Block PVC", func() {
@ -717,6 +801,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("validate mount options in app pod", func() { By("validate mount options in app pod", func() {
@ -725,6 +815,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
By("creating an app with a PVC, using a topology constrained StorageClass", func() { By("creating an app with a PVC, using a topology constrained StorageClass", func() {
@ -828,6 +924,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 1 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 1)
Fail("validate backend image failed")
}
// create an app and wait for 1 min for it to go to running state // create an app and wait for 1 min for it to go to running state
err = createApp(f.ClientSet, app, 1) err = createApp(f.ClientSet, app, 1)
if err == nil { if err == nil {
@ -838,6 +940,12 @@ var _ = Describe("RBD", func() {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images = listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
deleteResource(rbdExamplePath + "storageclass.yaml") deleteResource(rbdExamplePath + "storageclass.yaml")
createRBDStorageClass(f.ClientSet, f, nil, nil) createRBDStorageClass(f.ClientSet, f, nil, nil)
}) })
@ -866,7 +974,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 1 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 1)
Fail("validate backend image failed")
}
// delete pod as we should not create snapshot for in-use pvc // delete pod as we should not create snapshot for in-use pvc
err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout) err = deletePod(app.Name, app.Namespace, f.ClientSet, deployTimeout)
if err != nil { if err != nil {
@ -881,7 +994,14 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images = listRBDImages(f)
// parent PVC + snapshot
totalImages := 2
if len(images) != totalImages {
e2elog.Logf("backend image count %d expected image count %d", len(images), totalImages)
Fail("validate backend image failed")
}
pvcClone, err := loadPVC(pvcClonePath) pvcClone, err := loadPVC(pvcClonePath)
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
@ -894,6 +1014,14 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
// parent pvc+ snapshot + clone
totalImages = 3
images = listRBDImages(f)
if len(images) != totalImages {
e2elog.Logf("backend image count %d expected image count %d", len(images), totalImages)
Fail("validate backend image failed")
}
appClone, err := loadApp(appClonePath) appClone, err := loadApp(appClonePath)
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
@ -955,6 +1083,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images = listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
} }
}) })
@ -1077,6 +1211,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images := listRBDImages(f)
if len(images) != 1 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 1)
Fail("validate backend image failed")
}
opt := metav1.ListOptions{ opt := metav1.ListOptions{
LabelSelector: fmt.Sprintf("app=%s", app.Name), LabelSelector: fmt.Sprintf("app=%s", app.Name),
@ -1094,6 +1234,12 @@ var _ = Describe("RBD", func() {
if err != nil { if err != nil {
Fail(err.Error()) Fail(err.Error())
} }
// validate created backend rbd images
images = listRBDImages(f)
if len(images) != 0 {
e2elog.Logf("backend image count %d expected image count %d", len(images), 0)
Fail("validate backend image failed")
}
}) })
// Make sure this should be last testcase in this file, because // Make sure this should be last testcase in this file, because