Skip to content

Commit 8d62db8

Browse files
verify that idled PVCs are deleted (codeready-toolchain#1249)
1 parent ea5754c commit 8d62db8

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

test/e2e/parallel/user_workloads_test.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ func TestIdlerAndPriorityClass(t *testing.T) {
111111
// Wait for the DataVolume to be deleted
112112
err = memberAwait.WaitUntilDataVolumeDeleted(t, "test-idler-datavolume", idler.Name, clnt.Resource(dataVolumeRes))
113113
require.NoError(t, err)
114+
115+
// Wait for the PVC to be deleted
116+
err = memberAwait.WaitUntilPVCDeleted(t, "test-idler-pvc", idler.Name)
117+
require.NoError(t, err)
114118
}
115119

116120
func prepareIdlerUser(t *testing.T, await wait.Awaitilities, name string) (*toolchainv1alpha1.Idler, *toolchainv1alpha1.Idler) {
@@ -170,6 +174,10 @@ func prepareWorkloads(t *testing.T, memberAwait *wait.MemberAwaitility, namespac
170174
createDataVolume(t, memberAwait, "test-idler-datavolume", namespace)
171175
n = n + 1
172176

177+
// Create a PVC and Pod
178+
createPvcWithPod(t, memberAwait, "test-idler-pvc", namespace, nil)
179+
n = n + 1
180+
173181
servingRuntimeDeployment := createKServeWorkloads(t, memberAwait, "test-idler-kserve", namespace)
174182
n = n + int(*servingRuntimeDeployment.Spec.Replicas)
175183

testsupport/wait/member.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1573,6 +1573,27 @@ func (a *MemberAwaitility) WaitUntilDataVolumeDeleted(t *testing.T, name, namesp
15731573
return err
15741574
}
15751575

1576+
// WaitUntilPVCDeleted waits for the PVC resource to be deleted (idled)
1577+
func (a *MemberAwaitility) WaitUntilPVCDeleted(t *testing.T, name, namespace string) error {
1578+
t.Logf("waiting for PVC '%s' to be deleted in namespace '%s'", name, namespace)
1579+
pvc := &corev1.PersistentVolumeClaim{}
1580+
err := wait.PollUntilContextTimeout(context.TODO(), a.RetryInterval, a.Timeout, true, func(ctx context.Context) (bool, error) {
1581+
pvc = &corev1.PersistentVolumeClaim{}
1582+
err := a.Client.Get(ctx, test.NamespacedName(namespace, name), pvc)
1583+
if err != nil {
1584+
if errors.IsNotFound(err) {
1585+
return true, nil
1586+
}
1587+
return false, err
1588+
}
1589+
return false, nil
1590+
})
1591+
if err != nil {
1592+
t.Logf("failed waiting for PVC '%s' to be deleted in namespace '%s': %q", name, namespace, pvc)
1593+
}
1594+
return err
1595+
}
1596+
15761597
// WaitForPods waits until "n" number of pods exist in the given namespace
15771598
func (a *MemberAwaitility) WaitForPods(t *testing.T, namespace string, n int, criteria ...PodWaitCriterion) ([]corev1.Pod, error) {
15781599
t.Logf("waiting for Pods in namespace '%s' with matching criteria", namespace)

0 commit comments

Comments
 (0)