mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 06:27:05 +00:00
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 ```
This commit is contained in:
commit
1f55bbbe6a
@ -60,6 +60,11 @@ var (
|
|||||||
|
|
||||||
classWait = "wait"
|
classWait = "wait"
|
||||||
classImmediate = "immediate"
|
classImmediate = "immediate"
|
||||||
|
|
||||||
|
sharedClasses = map[storagev1.VolumeBindingMode]*storagev1.StorageClass{
|
||||||
|
modeImmediate: makeStorageClass(classImmediate, &modeImmediate),
|
||||||
|
modeWait: makeStorageClass(classWait, &modeWait),
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -271,6 +276,7 @@ func TestVolumeBindingRescheduling(t *testing.T) {
|
|||||||
cases := map[string]struct {
|
cases := map[string]struct {
|
||||||
pod *v1.Pod
|
pod *v1.Pod
|
||||||
pvcs []*testPVC
|
pvcs []*testPVC
|
||||||
|
pvs []*testPV
|
||||||
trigger func(config *testConfig)
|
trigger func(config *testConfig)
|
||||||
shouldFail bool
|
shouldFail bool
|
||||||
}{
|
}{
|
||||||
@ -305,7 +311,23 @@ func TestVolumeBindingRescheduling(t *testing.T) {
|
|||||||
},
|
},
|
||||||
shouldFail: false,
|
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 {
|
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
|
// Create pod
|
||||||
if _, err := config.client.CoreV1().Pods(config.ns).Create(test.pod); err != nil {
|
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)
|
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
|
// Create SCs
|
||||||
scs := []*storagev1.StorageClass{
|
for _, sc := range sharedClasses {
|
||||||
makeStorageClass(classImmediate, &modeImmediate),
|
|
||||||
makeStorageClass(classWait, &modeWait),
|
|
||||||
}
|
|
||||||
for _, sc := range scs {
|
|
||||||
if _, err := clientset.StorageV1().StorageClasses().Create(sc); err != nil {
|
if _, err := clientset.StorageV1().StorageClasses().Create(sc); err != nil {
|
||||||
t.Fatalf("Failed to create StorageClass %q: %v", sc.Name, err)
|
t.Fatalf("Failed to create StorageClass %q: %v", sc.Name, err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user