Skip to content

Commit cd0e0fc

Browse files
committed
add_test
1 parent 090145a commit cd0e0fc

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

test/integration/scheduler/queue_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,6 +1019,62 @@ func TestCoreResourceEnqueue(t *testing.T) {
10191019
wantRequeuedPods: sets.New("pod2"),
10201020
enableSchedulingQueueHint: []bool{true},
10211021
},
1022+
{
1023+
name: "Pod rejected with node by the VolumeZone plugin is not requeued when the PV is updated but the topology is same",
1024+
initialNodes: []*v1.Node{st.MakeNode().Name("fake-node").Label("node", "fake-node").Label(v1.LabelTopologyZone, "us-west1-a").Obj()},
1025+
initialPVs: []*v1.PersistentVolume{
1026+
st.MakePersistentVolume().
1027+
Name("pv1").
1028+
Labels(map[string]string{v1.LabelTopologyZone: "us-west1-a"}).
1029+
AccessModes([]v1.PersistentVolumeAccessMode{v1.ReadOnlyMany}).
1030+
Capacity(v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}).
1031+
HostPathVolumeSource(&v1.HostPathVolumeSource{Path: "/tmp", Type: &volType}).
1032+
Obj(),
1033+
st.MakePersistentVolume().
1034+
Name("pv2").
1035+
Labels(map[string]string{v1.LabelTopologyZone: "us-east1"}).
1036+
AccessModes([]v1.PersistentVolumeAccessMode{v1.ReadOnlyMany}).
1037+
Capacity(v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}).
1038+
HostPathVolumeSource(&v1.HostPathVolumeSource{Path: "/tmp", Type: &volType}).
1039+
Obj(),
1040+
},
1041+
initialPVCs: []*v1.PersistentVolumeClaim{
1042+
st.MakePersistentVolumeClaim().
1043+
Name("pvc1").
1044+
Annotation(volume.AnnBindCompleted, "true").
1045+
VolumeName("pv1").
1046+
AccessModes([]v1.PersistentVolumeAccessMode{v1.ReadWriteOncePod}).
1047+
Resources(v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}}).
1048+
Obj(),
1049+
st.MakePersistentVolumeClaim().
1050+
Name("pvc2").
1051+
Annotation(volume.AnnBindCompleted, "true").
1052+
VolumeName("pv2").
1053+
AccessModes([]v1.PersistentVolumeAccessMode{v1.ReadWriteOncePod}).
1054+
Resources(v1.VolumeResourceRequirements{Requests: v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}}).
1055+
Obj(),
1056+
},
1057+
initialPods: []*v1.Pod{
1058+
st.MakePod().Name("pod1").Container("image").PVC("pvc1").Node("fake-node").Obj(),
1059+
},
1060+
pods: []*v1.Pod{
1061+
st.MakePod().Name("pod2").Container("image").PVC("pvc2").Obj(),
1062+
},
1063+
triggerFn: func(testCtx *testutils.TestContext) error {
1064+
pv2 := st.MakePersistentVolume().Name("pv2").
1065+
Labels(map[string]string{v1.LabelTopologyZone: "us-east1", "unrelated": "unrelated"}).
1066+
AccessModes([]v1.PersistentVolumeAccessMode{v1.ReadOnlyMany}).
1067+
Capacity(v1.ResourceList{v1.ResourceStorage: resource.MustParse("1Mi")}).
1068+
HostPathVolumeSource(&v1.HostPathVolumeSource{Path: "/tmp", Type: &volType}).
1069+
Obj()
1070+
if _, err := testCtx.ClientSet.CoreV1().PersistentVolumes().Update(testCtx.Ctx, pv2, metav1.UpdateOptions{}); err != nil {
1071+
return fmt.Errorf("failed to update pv2: %w", err)
1072+
}
1073+
return nil
1074+
},
1075+
wantRequeuedPods: sets.Set[string]{},
1076+
enableSchedulingQueueHint: []bool{true},
1077+
},
10221078
}
10231079

10241080
for _, tt := range tests {

0 commit comments

Comments
 (0)