Skip to content

Commit 2235a7e

Browse files
authored
Merge pull request kubernetes#74554 from mkimuram/issue/74380
Fix resource leaking PDs for volume mode test
2 parents 4741785 + c5155f8 commit 2235a7e

File tree

2 files changed

+20
-32
lines changed

2 files changed

+20
-32
lines changed

test/e2e/storage/testsuites/base.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -232,14 +232,18 @@ func (r *genericVolumeTestResource) cleanupResource() {
232232
case testpatterns.DynamicPV:
233233
By("Deleting pvc")
234234
// We only delete the PVC so that PV (and disk) can be cleaned up by dynamic provisioner
235-
if r.pv.Spec.PersistentVolumeReclaimPolicy != v1.PersistentVolumeReclaimDelete {
235+
if r.pv != nil && r.pv.Spec.PersistentVolumeReclaimPolicy != v1.PersistentVolumeReclaimDelete {
236236
framework.Failf("Test framework does not currently support Dynamically Provisioned Persistent Volume %v specified with reclaim policy that isnt %v",
237237
r.pv.Name, v1.PersistentVolumeReclaimDelete)
238238
}
239-
err := framework.DeletePersistentVolumeClaim(f.ClientSet, r.pvc.Name, f.Namespace.Name)
240-
framework.ExpectNoError(err, "Failed to delete PVC %v", r.pvc.Name)
241-
err = framework.WaitForPersistentVolumeDeleted(f.ClientSet, r.pv.Name, 5*time.Second, 5*time.Minute)
242-
framework.ExpectNoError(err, "Persistent Volume %v not deleted by dynamic provisioner", r.pv.Name)
239+
if r.pvc != nil {
240+
err := framework.DeletePersistentVolumeClaim(f.ClientSet, r.pvc.Name, f.Namespace.Name)
241+
framework.ExpectNoError(err, "Failed to delete PVC %v", r.pvc.Name)
242+
if r.pv != nil {
243+
err = framework.WaitForPersistentVolumeDeleted(f.ClientSet, r.pv.Name, 5*time.Second, 5*time.Minute)
244+
framework.ExpectNoError(err, "Persistent Volume %v not deleted by dynamic provisioner", r.pv.Name)
245+
}
246+
}
243247
default:
244248
framework.Failf("Found PVC (%v) or PV (%v) but not running Preprovisioned or Dynamic test pattern", r.pvc, r.pv)
245249
}

test/e2e/storage/testsuites/volumemode.go

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"k8s.io/api/core/v1"
2626
storagev1 "k8s.io/api/storage/v1"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28-
utilerrors "k8s.io/apimachinery/pkg/util/errors"
2928
clientset "k8s.io/client-go/kubernetes"
3029
"k8s.io/kubernetes/test/e2e/framework"
3130
"k8s.io/kubernetes/test/e2e/storage/testpatterns"
@@ -67,12 +66,10 @@ func (t *volumeModeTestSuite) defineTests(driver TestDriver, pattern testpattern
6766
config *PerTestConfig
6867
testCleanup func()
6968

70-
cs clientset.Interface
71-
ns *v1.Namespace
72-
sc *storagev1.StorageClass
73-
pvc *v1.PersistentVolumeClaim
74-
pv *v1.PersistentVolume
75-
volume TestVolume
69+
cs clientset.Interface
70+
ns *v1.Namespace
71+
// genericVolumeTestResource contains pv, pvc, sc, etc., owns cleaning that up
72+
genericVolumeTestResource
7673
}
7774
var (
7875
dInfo = driver.GetDriverInfo()
@@ -104,6 +101,12 @@ func (t *volumeModeTestSuite) defineTests(driver TestDriver, pattern testpattern
104101
volumeNodeAffinity *v1.VolumeNodeAffinity
105102
)
106103

104+
l.genericVolumeTestResource = genericVolumeTestResource{
105+
driver: driver,
106+
config: l.config,
107+
pattern: pattern,
108+
}
109+
107110
// Create volume for pre-provisioned volume tests
108111
l.volume = CreateVolume(driver, l.config, pattern.VolType)
109112

@@ -144,26 +147,7 @@ func (t *volumeModeTestSuite) defineTests(driver TestDriver, pattern testpattern
144147
}
145148

146149
cleanup := func() {
147-
if l.pv != nil || l.pvc != nil {
148-
By("Deleting pv and pvc")
149-
errs := framework.PVPVCCleanup(f.ClientSet, f.Namespace.Name, l.pv, l.pvc)
150-
if len(errs) > 0 {
151-
framework.Logf("Failed to delete PV and/or PVC: %v", utilerrors.NewAggregate(errs))
152-
}
153-
l.pv = nil
154-
l.pvc = nil
155-
}
156-
157-
if l.sc != nil {
158-
By("Deleting sc")
159-
deleteStorageClass(f.ClientSet, l.sc.Name)
160-
l.sc = nil
161-
}
162-
163-
if l.volume != nil {
164-
l.volume.DeleteVolume()
165-
l.volume = nil
166-
}
150+
l.cleanupResource()
167151

168152
if l.testCleanup != nil {
169153
l.testCleanup()

0 commit comments

Comments
 (0)