mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-17 23:57:49 +00:00
Adding test case for scheduler NodeConditionPredicate
This commit is contained in:
parent
623e7dfa39
commit
bc9c461402
@ -430,3 +430,46 @@ func TestInvalidFactoryArgs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNodeConditionPredicate(t *testing.T) {
|
||||||
|
nodeFunc := getNodeConditionPredicate()
|
||||||
|
nodeList := &api.NodeList{
|
||||||
|
Items: []api.Node{
|
||||||
|
// node1 considered
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node1"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}}}},
|
||||||
|
// node2 ignored - node not Ready
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node2"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionFalse}}}},
|
||||||
|
// node3 ignored - node out of disk
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node3"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeOutOfDisk, Status: api.ConditionTrue}}}},
|
||||||
|
// node4 considered
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node4"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeOutOfDisk, Status: api.ConditionFalse}}}},
|
||||||
|
|
||||||
|
// node5 ignored - node out of disk
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node5"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}, {Type: api.NodeOutOfDisk, Status: api.ConditionTrue}}}},
|
||||||
|
// node6 considered
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node6"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionTrue}, {Type: api.NodeOutOfDisk, Status: api.ConditionFalse}}}},
|
||||||
|
// node7 ignored - node out of disk, node not Ready
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node7"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionFalse}, {Type: api.NodeOutOfDisk, Status: api.ConditionTrue}}}},
|
||||||
|
// node8 ignored - node not Ready
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node8"}, Status: api.NodeStatus{Conditions: []api.NodeCondition{{Type: api.NodeReady, Status: api.ConditionFalse}, {Type: api.NodeOutOfDisk, Status: api.ConditionFalse}}}},
|
||||||
|
|
||||||
|
// node9 ignored - node unschedulable
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node9"}, Spec: api.NodeSpec{Unschedulable: true}},
|
||||||
|
// node10 considered
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node10"}, Spec: api.NodeSpec{Unschedulable: false}},
|
||||||
|
// node11 considered
|
||||||
|
{ObjectMeta: api.ObjectMeta{Name: "node11"}},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
nodeNames := []string{}
|
||||||
|
for _, node := range nodeList.Items {
|
||||||
|
if nodeFunc(node) {
|
||||||
|
nodeNames = append(nodeNames, node.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
expectedNodes := []string{"node1", "node4", "node6", "node10", "node11"}
|
||||||
|
if !reflect.DeepEqual(expectedNodes, nodeNames) {
|
||||||
|
t.Errorf("expected: %v, got %v", expectedNodes, nodeNames)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user