Skip to content

Commit e648e94

Browse files
authored
Merge pull request kubernetes#86848 from haosdent/clean-filter-deps-nodeunschedulable
Break nodeunschedulable Filter plugins dependency on predicates package
2 parents aef336d + 864600f commit e648e94

File tree

6 files changed

+15
-13
lines changed

6 files changed

+15
-13
lines changed

pkg/scheduler/algorithm/predicates/error.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ var (
4747
ErrNodeNotReady = NewPredicateFailureError("NodeNotReady", "node(s) were not ready")
4848
// ErrNodeNetworkUnavailable is used for NodeNetworkUnavailable predicate error.
4949
ErrNodeNetworkUnavailable = NewPredicateFailureError("NodeNetworkUnavailable", "node(s) had unavailable network")
50-
// ErrNodeUnschedulable is used for NodeUnschedulable predicate error.
51-
ErrNodeUnschedulable = NewPredicateFailureError("NodeUnschedulable", "node(s) were unschedulable")
5250
// ErrNodeUnknownCondition is used for NodeUnknownCondition predicate error.
5351
ErrNodeUnknownCondition = NewPredicateFailureError("NodeUnknownCondition", "node(s) had unknown conditions")
5452
// ErrFakePredicate is used for test only. The fake predicates returning false also returns error
@@ -67,7 +65,6 @@ var unresolvablePredicateFailureErrors = map[PredicateFailureReason]struct{}{
6765
ErrNodeUnderDiskPressure: {},
6866
ErrNodeUnderPIDPressure: {},
6967
ErrNodeUnderMemoryPressure: {},
70-
ErrNodeUnschedulable: {},
7168
ErrNodeUnknownCondition: {},
7269
}
7370

pkg/scheduler/core/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ go_test(
5858
"//pkg/scheduler/framework/plugins/interpodaffinity:go_default_library",
5959
"//pkg/scheduler/framework/plugins/nodelabel:go_default_library",
6060
"//pkg/scheduler/framework/plugins/noderesources:go_default_library",
61+
"//pkg/scheduler/framework/plugins/nodeunschedulable:go_default_library",
6162
"//pkg/scheduler/framework/plugins/podtopologyspread:go_default_library",
6263
"//pkg/scheduler/framework/plugins/tainttoleration:go_default_library",
6364
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",

pkg/scheduler/core/generic_scheduler_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ import (
4646
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/interpodaffinity"
4747
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodelabel"
4848
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources"
49+
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodeunschedulable"
4950
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/podtopologyspread"
5051
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/tainttoleration"
5152
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumebinding"
@@ -1895,7 +1896,7 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
18951896
nodesStatuses: framework.NodeToStatusMap{
18961897
"machine1": framework.NewStatus(framework.Unschedulable, interpodaffinity.ErrReasonAffinityNotMatch),
18971898
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrPodNotMatchHostName.GetReason()),
1898-
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeUnschedulable.GetReason()),
1899+
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, nodeunschedulable.ErrReasonUnschedulable),
18991900
},
19001901
expected: map[string]bool{"machine1": true, "machine4": true},
19011902
},
@@ -1934,11 +1935,11 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
19341935
expected: map[string]bool{"machine4": true},
19351936
},
19361937
{
1937-
name: "Node condition errors and ErrNodeUnknownCondition should be considered unresolvable",
1938+
name: "Node condition errors should be considered unresolvable",
19381939
nodesStatuses: framework.NodeToStatusMap{
19391940
"machine1": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeNotReady.GetReason()),
19401941
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeNetworkUnavailable.GetReason()),
1941-
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeUnknownCondition.GetReason()),
1942+
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, nodeunschedulable.ErrReasonUnknownCondition),
19421943
},
19431944
expected: map[string]bool{"machine4": true},
19441945
},

pkg/scheduler/framework/plugins/nodeunschedulable/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ go_library(
77
visibility = ["//visibility:public"],
88
deps = [
99
"//pkg/apis/core/v1/helper:go_default_library",
10-
"//pkg/scheduler/algorithm/predicates:go_default_library",
1110
"//pkg/scheduler/framework/v1alpha1:go_default_library",
1211
"//pkg/scheduler/nodeinfo:go_default_library",
1312
"//staging/src/k8s.io/api/core/v1:go_default_library",
@@ -20,7 +19,6 @@ go_test(
2019
srcs = ["node_unschedulable_test.go"],
2120
embed = [":go_default_library"],
2221
deps = [
23-
"//pkg/scheduler/algorithm/predicates:go_default_library",
2422
"//pkg/scheduler/framework/v1alpha1:go_default_library",
2523
"//pkg/scheduler/nodeinfo:go_default_library",
2624
"//staging/src/k8s.io/api/core/v1:go_default_library",

pkg/scheduler/framework/plugins/nodeunschedulable/node_unschedulable.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
v1 "k8s.io/api/core/v1"
2323
"k8s.io/apimachinery/pkg/runtime"
2424
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
25-
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
2625
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
2726
"k8s.io/kubernetes/pkg/scheduler/nodeinfo"
2827
)
@@ -37,6 +36,13 @@ var _ framework.FilterPlugin = &NodeUnschedulable{}
3736
// Name is the name of the plugin used in the plugin registry and configurations.
3837
const Name = "NodeUnschedulable"
3938

39+
const (
40+
// ErrReasonUnknownCondition is used for NodeUnknownCondition predicate error.
41+
ErrReasonUnknownCondition = "node(s) had unknown conditions"
42+
// ErrReasonUnschedulable is used for NodeUnschedulable predicate error.
43+
ErrReasonUnschedulable = "node(s) were unschedulable"
44+
)
45+
4046
// Name returns name of the plugin. It is used in logs, etc.
4147
func (pl *NodeUnschedulable) Name() string {
4248
return Name
@@ -45,7 +51,7 @@ func (pl *NodeUnschedulable) Name() string {
4551
// Filter invoked at the filter extension point.
4652
func (pl *NodeUnschedulable) Filter(ctx context.Context, _ *framework.CycleState, pod *v1.Pod, nodeInfo *nodeinfo.NodeInfo) *framework.Status {
4753
if nodeInfo == nil || nodeInfo.Node() == nil {
48-
return framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrNodeUnknownCondition.GetReason())
54+
return framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonUnknownCondition)
4955
}
5056
// If pod tolerate unschedulable taint, it's also tolerate `node.Spec.Unschedulable`.
5157
podToleratesUnschedulable := v1helper.TolerationsTolerateTaint(pod.Spec.Tolerations, &v1.Taint{
@@ -54,7 +60,7 @@ func (pl *NodeUnschedulable) Filter(ctx context.Context, _ *framework.CycleState
5460
})
5561
// TODO (k82cn): deprecates `node.Spec.Unschedulable` in 1.13.
5662
if nodeInfo.Node().Spec.Unschedulable && !podToleratesUnschedulable {
57-
return framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrNodeUnschedulable.GetReason())
63+
return framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonUnschedulable)
5864
}
5965
return nil
6066
}

pkg/scheduler/framework/plugins/nodeunschedulable/node_unschedulable_test.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"testing"
2323

2424
v1 "k8s.io/api/core/v1"
25-
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
2625
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
2726
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
2827
)
@@ -42,7 +41,7 @@ func TestNodeUnschedulable(t *testing.T) {
4241
Unschedulable: true,
4342
},
4443
},
45-
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrNodeUnschedulable.GetReason()),
44+
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonUnschedulable),
4645
},
4746
{
4847
name: "Schedule pod to normal node",

0 commit comments

Comments
 (0)