Skip to content

Commit 9bcca31

Browse files
committed
Break volumerestrictions Filter plugins dependency on predicates package
1 parent 862c8bf commit 9bcca31

File tree

7 files changed

+18
-16
lines changed

7 files changed

+18
-16
lines changed

pkg/scheduler/algorithm/predicates/error.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ var (
3131
// it can never be made to pass by removing pods, you need to add the predicate
3232
// failure error in nodesWherePreemptionMightHelp() in scheduler/core/generic_scheduler.go
3333

34-
// ErrDiskConflict is used for NoDiskConflict predicate error.
35-
ErrDiskConflict = NewPredicateFailureError("NoDiskConflict", "node(s) had no available disk")
3634
// ErrVolumeZoneConflict is used for NoVolumeZoneConflict predicate error.
3735
ErrVolumeZoneConflict = NewPredicateFailureError("NoVolumeZoneConflict", "node(s) had no available volume zone")
3836
// ErrNodeSelectorNotMatch is used for MatchNodeSelector predicate error.

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/noderesources:go_default_library",
5959
"//pkg/scheduler/framework/plugins/podtopologyspread:go_default_library",
6060
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
61+
"//pkg/scheduler/framework/plugins/volumerestrictions:go_default_library",
6162
"//pkg/scheduler/framework/v1alpha1:go_default_library",
6263
"//pkg/scheduler/internal/cache:go_default_library",
6364
"//pkg/scheduler/internal/queue:go_default_library",

pkg/scheduler/core/generic_scheduler_test.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
"testing"
2828
"time"
2929

30+
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
31+
3032
v1 "k8s.io/api/core/v1"
3133
"k8s.io/apimachinery/pkg/api/resource"
3234
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -1903,7 +1905,7 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
19031905
name: "Mix of failed predicates works fine",
19041906
nodesStatuses: framework.NodeToStatusMap{
19051907
"machine1": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrNodeUnderDiskPressure.GetReason()),
1906-
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrDiskConflict.GetReason()),
1908+
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, volumerestrictions.ErrReasonDiskConflict),
19071909
"machine3": framework.NewStatus(framework.Unschedulable, algorithmpredicates.NewInsufficientResourceError(v1.ResourceMemory, 1000, 600, 400).GetReason()),
19081910
},
19091911
expected: map[string]bool{"machine3": true, "machine4": true},
@@ -1976,7 +1978,7 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
19761978
func TestPreempt(t *testing.T) {
19771979
defaultFailedNodeToStatusMap := framework.NodeToStatusMap{
19781980
"machine1": framework.NewStatus(framework.Unschedulable, algorithmpredicates.NewInsufficientResourceError(v1.ResourceMemory, 1000, 500, 300).GetReason()),
1979-
"machine2": framework.NewStatus(framework.Unschedulable, algorithmpredicates.ErrDiskConflict.GetReason()),
1981+
"machine2": framework.NewStatus(framework.Unschedulable, volumerestrictions.ErrReasonDiskConflict),
19801982
"machine3": framework.NewStatus(framework.Unschedulable, algorithmpredicates.NewInsufficientResourceError(v1.ResourceMemory, 1000, 600, 400).GetReason()),
19811983
}
19821984
// Prepare 3 node names.

pkg/scheduler/framework/plugins/migration/utils_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func TestPredicateResultToFrameworkStatus(t *testing.T) {
4343
{
4444
name: "Error with reason",
4545
err: errors.New("Failed with error"),
46-
reasons: []predicates.PredicateFailureReason{predicates.ErrDiskConflict},
46+
reasons: []predicates.PredicateFailureReason{predicates.ErrTaintsTolerationsNotMatch},
4747
wantStatus: framework.NewStatus(framework.Error, "Failed with error"),
4848
},
4949
{
@@ -53,8 +53,8 @@ func TestPredicateResultToFrameworkStatus(t *testing.T) {
5353
},
5454
{
5555
name: "Unschedulable and Unresolvable",
56-
reasons: []predicates.PredicateFailureReason{predicates.ErrDiskConflict, predicates.ErrNodeSelectorNotMatch},
57-
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, "node(s) had no available disk", "node(s) didn't match node selector"),
56+
reasons: []predicates.PredicateFailureReason{predicates.ErrTaintsTolerationsNotMatch, predicates.ErrNodeSelectorNotMatch},
57+
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, "node(s) had taints that the pod didn't tolerate", "node(s) didn't match node selector"),
5858
},
5959
}
6060
for _, tt := range tests {

pkg/scheduler/framework/plugins/volumerestrictions/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ go_library(
66
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions",
77
visibility = ["//visibility:public"],
88
deps = [
9-
"//pkg/scheduler/algorithm/predicates:go_default_library",
109
"//pkg/scheduler/framework/v1alpha1:go_default_library",
1110
"//pkg/scheduler/nodeinfo:go_default_library",
1211
"//staging/src/k8s.io/api/core/v1:go_default_library",
@@ -33,7 +32,6 @@ go_test(
3332
srcs = ["volume_restrictions_test.go"],
3433
embed = [":go_default_library"],
3534
deps = [
36-
"//pkg/scheduler/algorithm/predicates:go_default_library",
3735
"//pkg/scheduler/framework/v1alpha1:go_default_library",
3836
"//pkg/scheduler/nodeinfo:go_default_library",
3937
"//staging/src/k8s.io/api/core/v1:go_default_library",

pkg/scheduler/framework/plugins/volumerestrictions/volume_restrictions.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import (
2121

2222
v1 "k8s.io/api/core/v1"
2323
"k8s.io/apimachinery/pkg/runtime"
24-
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
2524
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
2625
"k8s.io/kubernetes/pkg/scheduler/nodeinfo"
2726
)
@@ -34,6 +33,11 @@ var _ framework.FilterPlugin = &VolumeRestrictions{}
3433
// Name is the name of the plugin used in the plugin registry and configurations.
3534
const Name = "VolumeRestrictions"
3635

36+
const (
37+
// ErrReasonDiskConflict is used for NoDiskConflict predicate error.
38+
ErrReasonDiskConflict = "node(s) had no available disk"
39+
)
40+
3741
// Name returns name of the plugin. It is used in logs, etc.
3842
func (pl *VolumeRestrictions) Name() string {
3943
return Name
@@ -118,7 +122,7 @@ func (pl *VolumeRestrictions) Filter(ctx context.Context, _ *framework.CycleStat
118122
for _, v := range pod.Spec.Volumes {
119123
for _, ev := range nodeInfo.Pods() {
120124
if isVolumeConflict(v, ev) {
121-
return framework.NewStatus(framework.Unschedulable, predicates.ErrDiskConflict.GetReason())
125+
return framework.NewStatus(framework.Unschedulable, ErrReasonDiskConflict)
122126
}
123127
}
124128
}

pkg/scheduler/framework/plugins/volumerestrictions/volume_restrictions_test.go

Lines changed: 4 additions & 5 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
)
@@ -50,7 +49,7 @@ func TestGCEDiskConflicts(t *testing.T) {
5049
},
5150
},
5251
}
53-
errStatus := framework.NewStatus(framework.Unschedulable, predicates.ErrDiskConflict.GetReason())
52+
errStatus := framework.NewStatus(framework.Unschedulable, ErrReasonDiskConflict)
5453
tests := []struct {
5554
pod *v1.Pod
5655
nodeInfo *schedulernodeinfo.NodeInfo
@@ -98,7 +97,7 @@ func TestAWSDiskConflicts(t *testing.T) {
9897
},
9998
},
10099
}
101-
errStatus := framework.NewStatus(framework.Unschedulable, predicates.ErrDiskConflict.GetReason())
100+
errStatus := framework.NewStatus(framework.Unschedulable, ErrReasonDiskConflict)
102101
tests := []struct {
103102
pod *v1.Pod
104103
nodeInfo *schedulernodeinfo.NodeInfo
@@ -152,7 +151,7 @@ func TestRBDDiskConflicts(t *testing.T) {
152151
},
153152
},
154153
}
155-
errStatus := framework.NewStatus(framework.Unschedulable, predicates.ErrDiskConflict.GetReason())
154+
errStatus := framework.NewStatus(framework.Unschedulable, ErrReasonDiskConflict)
156155
tests := []struct {
157156
pod *v1.Pod
158157
nodeInfo *schedulernodeinfo.NodeInfo
@@ -206,7 +205,7 @@ func TestISCSIDiskConflicts(t *testing.T) {
206205
},
207206
},
208207
}
209-
errStatus := framework.NewStatus(framework.Unschedulable, predicates.ErrDiskConflict.GetReason())
208+
errStatus := framework.NewStatus(framework.Unschedulable, ErrReasonDiskConflict)
210209
tests := []struct {
211210
pod *v1.Pod
212211
nodeInfo *schedulernodeinfo.NodeInfo

0 commit comments

Comments
 (0)