Skip to content

Commit d3e79be

Browse files
authored
Merge pull request #136 from ZeroMagic/dynamically_provisioned_reclaim_policy
test: add e2e test "dynamically_provisioned_reclaim_policy_test"
2 parents 053f888 + e97d199 commit d3e79be

File tree

2 files changed

+82
-2
lines changed

2 files changed

+82
-2
lines changed

test/e2e/dynamic_provisioning.go

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ var _ = Describe("Dynamic Provisioning", func() {
3939
)
4040

4141
nodeid := os.Getenv("nodeid")
42-
blobfuseDriver := azuredisk.NewDriver(nodeid)
42+
azurediskDriver := azuredisk.NewDriver(nodeid)
4343
endpoint := "unix:///tmp/csi.sock"
4444

4545
go func() {
46-
blobfuseDriver.Run(endpoint)
46+
azurediskDriver.Run(endpoint)
4747
}()
4848

4949
BeforeEach(func() {
@@ -160,4 +160,37 @@ var _ = Describe("Dynamic Provisioning", func() {
160160
}
161161
test.Run(cs, ns)
162162
})
163+
164+
It(fmt.Sprintf("should delete PV with reclaimPolicy %q", v1.PersistentVolumeReclaimDelete), func() {
165+
reclaimPolicy := v1.PersistentVolumeReclaimDelete
166+
volumes := []testsuites.VolumeDetails{
167+
{
168+
FSType: "ext4",
169+
ClaimSize: "10Gi",
170+
ReclaimPolicy: &reclaimPolicy,
171+
},
172+
}
173+
test := testsuites.DynamicallyProvisionedReclaimPolicyTest{
174+
CSIDriver: testDriver,
175+
Volumes: volumes,
176+
}
177+
test.Run(cs, ns)
178+
})
179+
180+
It(fmt.Sprintf("[env] should retain PV with reclaimPolicy %q", v1.PersistentVolumeReclaimRetain), func() {
181+
reclaimPolicy := v1.PersistentVolumeReclaimRetain
182+
volumes := []testsuites.VolumeDetails{
183+
{
184+
FSType: "ext4",
185+
ClaimSize: "10Gi",
186+
ReclaimPolicy: &reclaimPolicy,
187+
},
188+
}
189+
test := testsuites.DynamicallyProvisionedReclaimPolicyTest{
190+
CSIDriver: testDriver,
191+
Volumes: volumes,
192+
Azuredisk: azurediskDriver,
193+
}
194+
test.Run(cs, ns)
195+
})
163196
})
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
/*
2+
Copyright 2019 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
Unless required by applicable law or agreed to in writing, software
9+
distributed under the License is distributed on an "AS IS" BASIS,
10+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
See the License for the specific language governing permissions and
12+
limitations under the License.
13+
*/
14+
15+
package testsuites
16+
17+
import (
18+
"github.com/kubernetes-sigs/azuredisk-csi-driver/pkg/azuredisk"
19+
"github.com/kubernetes-sigs/azuredisk-csi-driver/test/e2e/driver"
20+
21+
"k8s.io/api/core/v1"
22+
clientset "k8s.io/client-go/kubernetes"
23+
)
24+
25+
// DynamicallyProvisionedReclaimPolicyTest will provision required PV(s) and PVC(s)
26+
// Testing the correct behavior for different reclaimPolicies
27+
type DynamicallyProvisionedReclaimPolicyTest struct {
28+
CSIDriver driver.DynamicPVTestDriver
29+
Volumes []VolumeDetails
30+
Azuredisk *azuredisk.Driver
31+
}
32+
33+
func (t *DynamicallyProvisionedReclaimPolicyTest) Run(client clientset.Interface, namespace *v1.Namespace) {
34+
for _, volume := range t.Volumes {
35+
tpvc, _ := volume.SetupDynamicPersistentVolumeClaim(client, namespace, t.CSIDriver)
36+
37+
// will delete the PVC
38+
// will also wait for PV to be deleted when reclaimPolicy=Delete
39+
tpvc.Cleanup()
40+
// first check PV stills exists, then manually delete it
41+
if tpvc.ReclaimPolicy() == v1.PersistentVolumeReclaimRetain {
42+
tpvc.WaitForPersistentVolumePhase(v1.VolumeReleased)
43+
tpvc.DeleteBoundPersistentVolume()
44+
tpvc.DeleteBackingVolume(t.Azuredisk)
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)