mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-17 15:50:10 +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