mirror of https://github.com/k3s-io/k3s
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
commit
1f55bbbe6a
|
@ -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)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue