1
0
mirror of https://github.com/kubernetes-sigs/descheduler.git synced 2026-01-28 14:41:10 +01:00

refactor(TestRemovePodsViolatingNodeAffinity): apply unit test convention for podWithNodeAffinity

This commit is contained in:
Jan Chaloupka
2025-12-15 14:34:05 +01:00
parent 2cda1bd89d
commit a2ffbc1261

View File

@@ -55,58 +55,60 @@ func TestRemovePodsViolatingNodeAffinity(t *testing.T) {
}) })
addPodsToNode := func(node *v1.Node, deletionTimestamp *metav1.Time, affinityType string) []*v1.Pod { addPodsToNode := func(node *v1.Node, deletionTimestamp *metav1.Time, affinityType string) []*v1.Pod {
podWithNodeAffinity := buildTestPod("podWithNodeAffinity", node.Name, nil) podWithNodeAffinity := buildTestPod("podWithNodeAffinity", node.Name, func(pod *v1.Pod) {
podWithNodeAffinity.Spec.Affinity = &v1.Affinity{ pod.Spec.Affinity = &v1.Affinity{
NodeAffinity: &v1.NodeAffinity{}, NodeAffinity: &v1.NodeAffinity{},
} }
switch affinityType { switch affinityType {
case "requiredDuringSchedulingIgnoredDuringExecution": case "requiredDuringSchedulingIgnoredDuringExecution":
podWithNodeAffinity.Spec.Affinity.NodeAffinity.RequiredDuringSchedulingIgnoredDuringExecution = &v1.NodeSelector{ pod.Spec.Affinity.NodeAffinity.RequiredDuringSchedulingIgnoredDuringExecution = &v1.NodeSelector{
NodeSelectorTerms: []v1.NodeSelectorTerm{ NodeSelectorTerms: []v1.NodeSelectorTerm{
{
MatchExpressions: []v1.NodeSelectorRequirement{
{
Key: nodeLabelKey,
Operator: "In",
Values: []string{
nodeLabelValue,
},
},
},
},
},
}
case "preferredDuringSchedulingIgnoredDuringExecution":
pod.Spec.Affinity.NodeAffinity.PreferredDuringSchedulingIgnoredDuringExecution = []v1.PreferredSchedulingTerm{
{ {
MatchExpressions: []v1.NodeSelectorRequirement{ Weight: 10,
{ Preference: v1.NodeSelectorTerm{
Key: nodeLabelKey, MatchExpressions: []v1.NodeSelectorRequirement{
Operator: "In", {
Values: []string{ Key: nodeLabelKey,
nodeLabelValue, Operator: "In",
Values: []string{
nodeLabelValue,
},
}, },
}, },
}, },
}, },
}, }
case "requiredDuringSchedulingRequiredDuringExecution":
default:
t.Fatalf("Invalid affinity type %s", affinityType)
} }
case "preferredDuringSchedulingIgnoredDuringExecution":
podWithNodeAffinity.Spec.Affinity.NodeAffinity.PreferredDuringSchedulingIgnoredDuringExecution = []v1.PreferredSchedulingTerm{ pod.ObjectMeta.OwnerReferences = test.GetNormalPodOwnerRefList()
{ pod.DeletionTimestamp = deletionTimestamp
Weight: 10, })
Preference: v1.NodeSelectorTerm{
MatchExpressions: []v1.NodeSelectorRequirement{
{
Key: nodeLabelKey,
Operator: "In",
Values: []string{
nodeLabelValue,
},
},
},
},
},
}
case "requiredDuringSchedulingRequiredDuringExecution":
default:
t.Fatalf("Invalid affinity type %s", affinityType)
}
pod1 := buildTestPod("pod1", node.Name, nil) pod1 := buildTestPod("pod1", node.Name, nil)
pod2 := buildTestPod("pod2", node.Name, nil) pod2 := buildTestPod("pod2", node.Name, nil)
podWithNodeAffinity.ObjectMeta.OwnerReferences = test.GetNormalPodOwnerRefList()
pod1.ObjectMeta.OwnerReferences = test.GetNormalPodOwnerRefList() pod1.ObjectMeta.OwnerReferences = test.GetNormalPodOwnerRefList()
pod2.ObjectMeta.OwnerReferences = test.GetNormalPodOwnerRefList() pod2.ObjectMeta.OwnerReferences = test.GetNormalPodOwnerRefList()
podWithNodeAffinity.DeletionTimestamp = deletionTimestamp
pod1.DeletionTimestamp = deletionTimestamp pod1.DeletionTimestamp = deletionTimestamp
pod2.DeletionTimestamp = deletionTimestamp pod2.DeletionTimestamp = deletionTimestamp