Skip to content

Commit df8c4d9

Browse files
Devops user testing for WCP part1
1 parent 223491c commit df8c4d9

10 files changed

+931
-951
lines changed

tests/e2e/csi_snapshot_basic.go

Lines changed: 312 additions & 305 deletions
Large diffs are not rendered by default.

tests/e2e/csi_static_provisioning_basic.go

Lines changed: 63 additions & 45 deletions
Large diffs are not rendered by default.

tests/e2e/e2e_common.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ var (
517517
audienceForSvcAccountName = "https://kubernetes.default.svc.cluster.local"
518518
envIsDevopsUser = "IS_DEVOPS_USER"
519519
serviceAccountKeyword = "ServiceAccount"
520+
envUserName = "USERNAME"
520521
)
521522

522523
// storage policy usages for storage quota validation

tests/e2e/snapshot_stretched_supervisor.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,14 @@ var _ = ginkgo.Describe("Stretched-Supervisor-Snapshot", func() {
6868

6969
bootstrap()
7070
client = f.ClientSet
71+
var err error
72+
var nodeList *v1.NodeList
7173
namespace = getNamespaceToRunTests(f)
72-
7374
// parameters set for storage policy
7475
scParameters = make(map[string]string)
7576

7677
// fetching node list and checking node status
77-
nodeList, err := fnodes.GetReadySchedulableNodes(ctx, f.ClientSet)
78+
nodeList, err = fnodes.GetReadySchedulableNodes(ctx, f.ClientSet)
7879
framework.ExpectNoError(err, "Unable to find ready and schedulable Node")
7980
if !(len(nodeList.Items) > 0) {
8081
framework.Failf("Unable to find ready and schedulable Node")
@@ -155,7 +156,7 @@ var _ = ginkgo.Describe("Stretched-Supervisor-Snapshot", func() {
155156
defer cancel()
156157

157158
ginkgo.By(fmt.Sprintf("Deleting all statefulsets in namespace: %v", namespace))
158-
fss.DeleteAllStatefulSets(ctx, client, namespace)
159+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
159160
ginkgo.By(fmt.Sprintf("Deleting service nginx in namespace: %v", namespace))
160161
err := client.CoreV1().Services(namespace).Delete(ctx, servicename, *metav1.NewDeleteOptions(0))
161162
if !apierrors.IsNotFound(err) {
@@ -488,7 +489,7 @@ var _ = ginkgo.Describe("Stretched-Supervisor-Snapshot", func() {
488489
int32(stsReplicas), true, allowedTopologies, true, true,
489490
zonalPolicy, "", storageclass, zonalPolicy)
490491
defer func() {
491-
fss.DeleteAllStatefulSets(ctx, client, namespace)
492+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
492493
}()
493494

494495
framework.Logf("Verify PV node affinity and that the PODS are running on appropriate node")
@@ -544,7 +545,7 @@ var _ = ginkgo.Describe("Stretched-Supervisor-Snapshot", func() {
544545
v1.ReadWriteOnce, volumeSnapshot1.Name, snapshotapigroup)
545546
restoreVol1, err := fpv.CreatePVC(ctx, client, namespace, pvcSpec)
546547
gomega.Expect(err).NotTo(gomega.HaveOccurred())
547-
restorepv1, err := fpv.WaitForPVClaimBoundPhase(ctx, client,
548+
restorepv1, err := WaitForPVClaimBoundPhase(ctx, client,
548549
[]*v1.PersistentVolumeClaim{restoreVol1}, framework.ClaimProvisionTimeout)
549550
gomega.Expect(err).NotTo(gomega.HaveOccurred())
550551
restoreVolHandle1 := restorepv1[0].Spec.CSI.VolumeHandle

tests/e2e/snapshot_vmservice_vm.go

Lines changed: 141 additions & 122 deletions
Large diffs are not rendered by default.

tests/e2e/statefulsets.go

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -82,18 +82,25 @@ var _ = ginkgo.Describe("statefulset", func() {
8282
stsReplicas int32
8383
allowedTopologies []v1.TopologySelectorLabelRequirement
8484
isQuotaValidationSupported bool
85+
adminClient clientset.Interface
8586
)
8687

8788
ginkgo.BeforeEach(func() {
8889
ctx, cancel := context.WithCancel(context.Background())
8990
defer cancel()
90-
namespace = getNamespaceToRunTests(f)
91+
var err error
9192
client = f.ClientSet
93+
namespace = getNamespaceToRunTests(f)
94+
adminClient, client = initializeClusterClientsByUserRoles(client)
95+
9296
bootstrap()
93-
sc, err := client.StorageV1().StorageClasses().Get(ctx, defaultNginxStorageClassName, metav1.GetOptions{})
94-
if err == nil && sc != nil {
95-
gomega.Expect(client.StorageV1().StorageClasses().Delete(ctx, sc.Name,
96-
*metav1.NewDeleteOptions(0))).NotTo(gomega.HaveOccurred())
97+
98+
if vanillaCluster {
99+
sc, err := client.StorageV1().StorageClasses().Get(ctx, defaultNginxStorageClassName, metav1.GetOptions{})
100+
if err == nil && sc != nil {
101+
gomega.Expect(client.StorageV1().StorageClasses().Delete(ctx, sc.Name,
102+
*metav1.NewDeleteOptions(0))).NotTo(gomega.HaveOccurred())
103+
}
97104
}
98105

99106
scParameters = make(map[string]string)
@@ -127,7 +134,7 @@ var _ = ginkgo.Describe("statefulset", func() {
127134
}
128135

129136
if stretchedSVC {
130-
nodeList, err = fnodes.GetReadySchedulableNodes(ctx, client)
137+
nodeList, err = fnodes.GetReadySchedulableNodes(ctx, f.ClientSet)
131138
framework.ExpectNoError(err, "Unable to find ready and schedulable Node")
132139
}
133140

@@ -142,12 +149,13 @@ var _ = ginkgo.Describe("statefulset", func() {
142149
ctx, cancel := context.WithCancel(context.Background())
143150
defer cancel()
144151
ginkgo.By(fmt.Sprintf("Deleting all statefulsets in namespace: %v", namespace))
145-
fss.DeleteAllStatefulSets(ctx, client, namespace)
152+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
146153
ginkgo.By(fmt.Sprintf("Deleting service nginx in namespace: %v", namespace))
147154
err := client.CoreV1().Services(namespace).Delete(ctx, servicename, *metav1.NewDeleteOptions(0))
148155
if !apierrors.IsNotFound(err) {
149156
gomega.Expect(err).NotTo(gomega.HaveOccurred())
150157
}
158+
151159
if supervisorCluster {
152160
dumpSvcNsEventsOnTestFailure(client, namespace)
153161
}
@@ -195,8 +203,6 @@ var _ = ginkgo.Describe("statefulset", func() {
195203
} else {
196204
storageClassName = storagePolicyName
197205
ginkgo.By("Running for WCP setup")
198-
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
199-
scParameters[scParamStoragePolicyID] = profileID
200206
}
201207

202208
restConfig := getRestConfigClient()
@@ -220,7 +226,7 @@ var _ = ginkgo.Describe("statefulset", func() {
220226

221227
if stretchedSVC {
222228
scParameters[svStorageClassName] = zonalPolicy
223-
storageclass, err := client.StorageV1().StorageClasses().Get(ctx, zonalPolicy, metav1.GetOptions{})
229+
storageclass, err := adminClient.StorageV1().StorageClasses().Get(ctx, zonalPolicy, metav1.GetOptions{})
224230
if !apierrors.IsNotFound(err) {
225231
gomega.Expect(err).NotTo(gomega.HaveOccurred())
226232
}
@@ -232,6 +238,10 @@ var _ = ginkgo.Describe("statefulset", func() {
232238

233239
CreateStatefulSet(namespace, statefulset, client)
234240
replicas := *(statefulset.Spec.Replicas)
241+
242+
defer func() {
243+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
244+
}()
235245
// Waiting for pods status to be Ready
236246
fss.WaitForStatusReadyReplicas(ctx, client, statefulset, replicas)
237247
gomega.Expect(fss.CheckMount(ctx, client, statefulset, mountPath)).NotTo(gomega.HaveOccurred())
@@ -438,8 +448,6 @@ var _ = ginkgo.Describe("statefulset", func() {
438448
} else {
439449
storageClassName = storagePolicyName
440450
ginkgo.By("Running for WCP setup")
441-
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
442-
scParameters[scParamStoragePolicyID] = profileID
443451
}
444452

445453
ginkgo.By("Creating service")
@@ -456,6 +464,9 @@ var _ = ginkgo.Describe("statefulset", func() {
456464
ginkgo.By("Creating statefulset")
457465
CreateStatefulSet(namespace, statefulset, client)
458466
replicas := *(statefulset.Spec.Replicas)
467+
defer func() {
468+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
469+
}()
459470
// Waiting for pods status to be Ready
460471
fss.WaitForStatusReadyReplicas(ctx, client, statefulset, replicas)
461472
gomega.Expect(fss.CheckMount(ctx, client, statefulset, mountPath)).NotTo(gomega.HaveOccurred())
@@ -637,8 +648,6 @@ var _ = ginkgo.Describe("statefulset", func() {
637648
storageClassName = GetAndExpectStringEnvVar(envStoragePolicyNameForSharedDatastores)
638649
framework.Logf("storageClassName %v", storageClassName)
639650
ginkgo.By("CNS_TEST: Running for WCP setup")
640-
profileID := e2eVSphere.GetSpbmPolicyID(storageClassName)
641-
scParameters[scParamStoragePolicyID] = profileID
642651
}
643652

644653
if !vcptocsi {
@@ -668,6 +677,10 @@ var _ = ginkgo.Describe("statefulset", func() {
668677
Spec.StorageClassName = &storageClassName
669678
CreateStatefulSet(namespace, statefulset, client)
670679
replicas := *(statefulset.Spec.Replicas)
680+
defer func() {
681+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
682+
}()
683+
671684
// Waiting for pods status to be Ready
672685
fss.WaitForStatusReadyReplicas(ctx, client, statefulset, replicas)
673686
gomega.Expect(fss.CheckMount(ctx, client, statefulset, mountPath)).NotTo(gomega.HaveOccurred())
@@ -827,7 +840,7 @@ var _ = ginkgo.Describe("statefulset", func() {
827840
12. Inncrease the CSI driver replica to 3
828841
829842
*/
830-
ginkgo.It("[ef-wcp][csi-block-vanilla][csi-supervisor][pq-vanilla-block] ListVolumeResponse "+
843+
ginkgo.It("[ef-wcp][csi-block-vanilla] [csi-supervisor] ListVolumeResponse "+
831844
"Validation", ginkgo.Label(p1, listVolume, block, vanilla, wcp, vc70), func() {
832845
ctx, cancel := context.WithCancel(context.Background())
833846
defer cancel()
@@ -843,21 +856,18 @@ var _ = ginkgo.Describe("statefulset", func() {
843856
storageClassName = "nginx-sc-default"
844857
} else {
845858
ginkgo.By("Running for WCP setup")
846-
847-
profileID := e2eVSphere.GetSpbmPolicyID(storagePolicyName)
848-
scParameters[scParamStoragePolicyID] = profileID
849-
// create resource quota
859+
storageClassName = storagePolicyName
850860
}
851861

852862
ginkgo.By("scale down CSI driver POD to 1 , so that it will" +
853863
"be easy to validate all Listvolume response on one driver POD")
854-
collectPodLogs(ctx, client, csiSystemNamespace)
855-
scaledownCSIDriver, err := scaleCSIDriver(ctx, client, namespace, 1)
864+
collectPodLogs(ctx, adminClient, csiSystemNamespace)
865+
scaledownCSIDriver, err := scaleCSIDriver(ctx, adminClient, namespace, 1)
856866
gomega.Expect(scaledownCSIDriver).To(gomega.BeTrue(), "csi driver scaledown is not successful")
857867
gomega.Expect(err).NotTo(gomega.HaveOccurred())
858868
defer func() {
859869
ginkgo.By("Scale up the csi-driver replica to 3")
860-
success, err := scaleCSIDriver(ctx, client, namespace, 3)
870+
success, err := scaleCSIDriver(ctx, adminClient, namespace, 3)
861871
gomega.Expect(success).To(gomega.BeTrue(), "csi driver scale up to 3 replica not successful")
862872
gomega.Expect(err).NotTo(gomega.HaveOccurred())
863873
}()
@@ -884,6 +894,10 @@ var _ = ginkgo.Describe("statefulset", func() {
884894
Spec.StorageClassName = &storageClassName
885895
CreateStatefulSet(namespace, statefulset, client)
886896
replicas := *(statefulset.Spec.Replicas)
897+
898+
defer func() {
899+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
900+
}()
887901
// Waiting for pods status to be Ready
888902
fss.WaitForStatusReadyReplicas(ctx, client, statefulset, replicas)
889903
gomega.Expect(fss.CheckMount(ctx, client, statefulset, mountPath)).NotTo(gomega.HaveOccurred())
@@ -937,7 +951,7 @@ var _ = ginkgo.Describe("statefulset", func() {
937951
HostKeyCallback: ssh.InsecureIgnoreHostKey(),
938952
}
939953
}
940-
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, client, sshClientConfig,
954+
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, adminClient, sshClientConfig,
941955
containerName, logMessage, volumesBeforeScaleUp)
942956
gomega.Expect(err).NotTo(gomega.HaveOccurred())
943957

@@ -957,7 +971,7 @@ var _ = ginkgo.Describe("statefulset", func() {
957971

958972
ginkgo.By("Validate pagination")
959973
logMessage = "token for next set: 3"
960-
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, client, sshClientConfig, containerName, logMessage, nil)
974+
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, adminClient, sshClientConfig, containerName, logMessage, nil)
961975
gomega.Expect(err).NotTo(gomega.HaveOccurred())
962976

963977
if vanillaCluster {
@@ -970,7 +984,7 @@ var _ = ginkgo.Describe("statefulset", func() {
970984
//List volume responses will show up in the interval of every 1 minute.
971985
//To see the error, It is required to wait for 1 min after deleteting few Volumes
972986
time.Sleep(pollTimeoutShort)
973-
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, client, sshClientConfig, containerName, logMessage, nil)
987+
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, adminClient, sshClientConfig, containerName, logMessage, nil)
974988
gomega.Expect(err).NotTo(gomega.HaveOccurred())
975989
}
976990

@@ -996,7 +1010,7 @@ var _ = ginkgo.Describe("statefulset", func() {
9961010
ginkgo.By("Validate ListVolume Response when no volumes are present")
9971011
logMessage = "ListVolumes served 0 results"
9981012

999-
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, client, sshClientConfig, containerName, logMessage, nil)
1013+
_, _, err = getCSIPodWhereListVolumeResponseIsPresent(ctx, adminClient, sshClientConfig, containerName, logMessage, nil)
10001014
gomega.Expect(err).NotTo(gomega.HaveOccurred())
10011015
})
10021016

@@ -1009,7 +1023,7 @@ var _ = ginkgo.Describe("statefulset", func() {
10091023
5. Scale up replica to 5.
10101024
6. Exit MM and clean up all pods and PVs.
10111025
*/
1012-
ginkgo.It("[ef-f-wcp][csi-supervisor] Test MM workflow on statefulset", ginkgo.Label(p1, block, wcp,
1026+
ginkgo.It("[ef-wcp][csi-supervisor] Test MM workflow on statefulset", ginkgo.Label(p1, block, wcp,
10131027
disruptive, vc70), func() {
10141028
ctx, cancel := context.WithCancel(context.Background())
10151029
defer cancel()
@@ -1021,7 +1035,7 @@ var _ = ginkgo.Describe("statefulset", func() {
10211035
setStoragePolicyQuota(ctx, restConfig, storagePolicyName, namespace, rqLimit)
10221036

10231037
ginkgo.By("Get the storageclass from Supervisor")
1024-
sc, err := client.StorageV1().StorageClasses().Get(ctx, storagePolicyName, metav1.GetOptions{})
1038+
sc, err := adminClient.StorageV1().StorageClasses().Get(ctx, storagePolicyName, metav1.GetOptions{})
10251039
gomega.Expect(err).NotTo(gomega.HaveOccurred())
10261040

10271041
ginkgo.By("Creating service")
@@ -1117,7 +1131,7 @@ var _ = ginkgo.Describe("statefulset", func() {
11171131
7. clean up the data
11181132
*/
11191133

1120-
ginkgo.It("[ef-f-stretched-svc][stretched-svc] Statefulset-parallel-podManagementPolicy-wffc",
1134+
ginkgo.It("[ef-stretched-svc][stretched-svc] Statefulset-parallel-podManagementPolicy-wffc",
11211135
ginkgo.Label(p0, block, stretchedSvc, vc70), func() {
11221136
ctx, cancel := context.WithCancel(context.Background())
11231137
defer cancel()
@@ -1130,7 +1144,7 @@ var _ = ginkgo.Describe("statefulset", func() {
11301144
parallelStatefulSetCreation := false
11311145

11321146
scParameters[svStorageClassName] = zonalWffcPolicy
1133-
storageclass, err := client.StorageV1().StorageClasses().Get(ctx, zonalWffcPolicy, metav1.GetOptions{})
1147+
storageclass, err := adminClient.StorageV1().StorageClasses().Get(ctx, zonalWffcPolicy, metav1.GetOptions{})
11341148
if !apierrors.IsNotFound(err) {
11351149
gomega.Expect(err).NotTo(gomega.HaveOccurred())
11361150
}
@@ -1147,7 +1161,7 @@ var _ = ginkgo.Describe("statefulset", func() {
11471161
stsReplicas, nodeAffinityToSet, nil, podAntiAffinityToSet, true,
11481162
"", "", storageclass, storageClassName)
11491163
defer func() {
1150-
fss.DeleteAllStatefulSets(ctx, client, namespace)
1164+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
11511165
}()
11521166

11531167
framework.Logf("Verify PV node affinity and that the PODS are running on appropriate node")
@@ -1205,7 +1219,7 @@ var _ = ginkgo.Describe("statefulset", func() {
12051219
parallelStatefulSetCreation := false
12061220

12071221
scParameters[svStorageClassName] = zonalPolicy
1208-
storageclass, err := client.StorageV1().StorageClasses().Get(ctx, zonalPolicy, metav1.GetOptions{})
1222+
storageclass, err := adminClient.StorageV1().StorageClasses().Get(ctx, zonalPolicy, metav1.GetOptions{})
12091223
if !apierrors.IsNotFound(err) {
12101224
gomega.Expect(err).NotTo(gomega.HaveOccurred())
12111225
}
@@ -1222,7 +1236,7 @@ var _ = ginkgo.Describe("statefulset", func() {
12221236
stsReplicas, nodeAffinityToSet, allowedTopologies, podAntiAffinityToSet, true,
12231237
"", "", storageclass, storageClassName)
12241238
defer func() {
1225-
fss.DeleteAllStatefulSets(ctx, client, namespace)
1239+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
12261240
}()
12271241

12281242
framework.Logf("Verify PV node affinity and that the PODS are running on appropriate node")
@@ -1278,7 +1292,7 @@ var _ = ginkgo.Describe("statefulset", func() {
12781292
parallelStatefulSetCreation := false
12791293

12801294
scParameters[svStorageClassName] = zonalPolicy
1281-
storageclass, err := client.StorageV1().StorageClasses().Get(ctx, zonalPolicy, metav1.GetOptions{})
1295+
storageclass, err := adminClient.StorageV1().StorageClasses().Get(ctx, zonalPolicy, metav1.GetOptions{})
12821296
if !apierrors.IsNotFound(err) {
12831297
gomega.Expect(err).NotTo(gomega.HaveOccurred())
12841298
}
@@ -1295,7 +1309,7 @@ var _ = ginkgo.Describe("statefulset", func() {
12951309
stsReplicas, nodeAffinityToSet, allowedTopologies, podAntiAffinityToSet, true,
12961310
"", "", storageclass, storageClassName)
12971311
defer func() {
1298-
fss.DeleteAllStatefulSets(ctx, client, namespace)
1312+
deleteAllStsAndPodsPVCsInNamespace(ctx, client, namespace)
12991313
}()
13001314

13011315
ginkgo.By("Verify all volumes are attached to Nodes after Statefulsets is scaled up/down")

0 commit comments

Comments
 (0)