Merge pull request #67247 from cofyc/fix67246

Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add integration test for scheduler "on PVC add" event handling

**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #67246

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
pull/8/head
Kubernetes Submit Queue 2018-08-11 03:36:52 -07:00 committed by GitHub
commit 1f55bbbe6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 32 additions and 6 deletions

View File

@ -60,6 +60,11 @@ var (
classWait = "wait"
classImmediate = "immediate"
sharedClasses = map[storagev1.VolumeBindingMode]*storagev1.StorageClass{
modeImmediate: makeStorageClass(classImmediate, &modeImmediate),
modeWait: makeStorageClass(classWait, &modeWait),
}
)
const (
@ -271,6 +276,7 @@ func TestVolumeBindingRescheduling(t *testing.T) {
cases := map[string]struct {
pod *v1.Pod
pvcs []*testPVC
pvs []*testPV
trigger func(config *testConfig)
shouldFail bool
}{
@ -305,7 +311,23 @@ func TestVolumeBindingRescheduling(t *testing.T) {
},
shouldFail: false,
},
// TODO test rescheduling on PVC add/update
"reschedule on delay binding PVC add": {
pod: makePod("pod-reschedule-onpvcadd", config.ns, []string{"pvc-reschedule-onpvcadd"}),
pvs: []*testPV{
{
name: "pv-reschedule-onpvcadd",
scMode: modeWait,
node: node1,
},
},
trigger: func(config *testConfig) {
pvc := makePVC("pvc-reschedule-onpvcadd", config.ns, &classWait, "")
if _, err := config.client.CoreV1().PersistentVolumeClaims(config.ns).Create(pvc); err != nil {
t.Fatalf("Failed to create PersistentVolumeClaim %q: %v", pvc.Name, err)
}
},
shouldFail: false,
},
}
for name, test := range cases {
@ -323,6 +345,14 @@ func TestVolumeBindingRescheduling(t *testing.T) {
}
}
// Create PVs
for _, pvConfig := range test.pvs {
pv := makePV(pvConfig.name, sharedClasses[pvConfig.scMode].Name, pvConfig.preboundPVC, config.ns, pvConfig.node)
if _, err := config.client.CoreV1().PersistentVolumes().Create(pv); err != nil {
t.Fatalf("Failed to create PersistentVolume %q: %v", pv.Name, err)
}
}
// Create pod
if _, err := config.client.CoreV1().Pods(config.ns).Create(test.pod); err != nil {
t.Fatalf("Failed to create Pod %q: %v", test.pod.Name, err)
@ -575,11 +605,7 @@ func setupCluster(t *testing.T, nsName string, numberOfNodes int, features map[s
}
// Create SCs
scs := []*storagev1.StorageClass{
makeStorageClass(classImmediate, &modeImmediate),
makeStorageClass(classWait, &modeWait),
}
for _, sc := range scs {
for _, sc := range sharedClasses {
if _, err := clientset.StorageV1().StorageClasses().Create(sc); err != nil {
t.Fatalf("Failed to create StorageClass %q: %v", sc.Name, err)
}