Skip to content

Commit 99600ae

Browse files
authored
Merge pull request kubernetes#86852 from haosdent/clean-filter-deps-volumezone
Break volumezone Filter plugins dependency on predicates package
2 parents c867fdb + 320c9bf commit 99600ae

File tree

6 files changed

+14
-14
lines changed

6 files changed

+14
-14
lines changed

pkg/scheduler/algorithm/predicates/error.go

Lines changed: 0 additions & 3 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-
// ErrVolumeZoneConflict is used for NoVolumeZoneConflict predicate error.
35-
ErrVolumeZoneConflict = NewPredicateFailureError("NoVolumeZoneConflict", "node(s) had no available volume zone")
3634
// ErrNodeSelectorNotMatch is used for MatchNodeSelector predicate error.
3735
ErrNodeSelectorNotMatch = NewPredicateFailureError("MatchNodeSelector", "node(s) didn't match node selector")
3836
// ErrPodAffinityNotMatch is used for MatchInterPodAffinity predicate error.
@@ -87,7 +85,6 @@ var unresolvablePredicateFailureErrors = map[PredicateFailureReason]struct{}{
8785
ErrNodeUnderMemoryPressure: {},
8886
ErrNodeUnschedulable: {},
8987
ErrNodeUnknownCondition: {},
90-
ErrVolumeZoneConflict: {},
9188
}
9289

9390
// UnresolvablePredicateExists checks if there is at least one unresolvable predicate failure reason.

pkg/scheduler/core/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ go_test(
6060
"//pkg/scheduler/framework/plugins/podtopologyspread:go_default_library",
6161
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
6262
"//pkg/scheduler/framework/plugins/volumerestrictions:go_default_library",
63+
"//pkg/scheduler/framework/plugins/volumezone:go_default_library",
6364
"//pkg/scheduler/framework/v1alpha1:go_default_library",
6465
"//pkg/scheduler/internal/cache:go_default_library",
6566
"//pkg/scheduler/internal/queue:go_default_library",

pkg/scheduler/core/generic_scheduler_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929

3030
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodelabel"
3131
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions"
32+
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumezone"
3233

3334
v1 "k8s.io/api/core/v1"
3435
"k8s.io/apimachinery/pkg/api/resource"
@@ -1932,7 +1933,7 @@ func TestNodesWherePreemptionMightHelp(t *testing.T) {
19321933
{
19331934
name: "ErrVolume... errors should not be tried as it indicates that the pod is unschedulable due to no matching volumes for pod on node",
19341935
nodesStatuses: framework.NodeToStatusMap{
1935-
"machine1": framework.NewStatus(framework.UnschedulableAndUnresolvable, algorithmpredicates.ErrVolumeZoneConflict.GetReason()),
1936+
"machine1": framework.NewStatus(framework.UnschedulableAndUnresolvable, volumezone.ErrReasonConflict),
19361937
"machine2": framework.NewStatus(framework.UnschedulableAndUnresolvable, volumebinding.ErrReasonNodeConflict),
19371938
"machine3": framework.NewStatus(framework.UnschedulableAndUnresolvable, volumebinding.ErrReasonBindConflict),
19381939
},

pkg/scheduler/framework/plugins/volumezone/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",
@@ -25,7 +24,6 @@ go_test(
2524
srcs = ["volume_zone_test.go"],
2625
embed = [":go_default_library"],
2726
deps = [
28-
"//pkg/scheduler/algorithm/predicates:go_default_library",
2927
"//pkg/scheduler/framework/v1alpha1:go_default_library",
3028
"//pkg/scheduler/listers/fake:go_default_library",
3129
"//pkg/scheduler/nodeinfo:go_default_library",

pkg/scheduler/framework/plugins/volumezone/volume_zone.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
volumehelpers "k8s.io/cloud-provider/volume/helpers"
2929
"k8s.io/klog"
3030
v1helper "k8s.io/kubernetes/pkg/apis/core/v1/helper"
31-
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
3231
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
3332
"k8s.io/kubernetes/pkg/scheduler/nodeinfo"
3433
)
@@ -42,8 +41,13 @@ type VolumeZone struct {
4241

4342
var _ framework.FilterPlugin = &VolumeZone{}
4443

45-
// Name is the name of the plugin used in the plugin registry and configurations.
46-
const Name = "VolumeZone"
44+
const (
45+
// Name is the name of the plugin used in the plugin registry and configurations.
46+
Name = "VolumeZone"
47+
48+
// ErrReasonConflict is used for NoVolumeZoneConflict predicate error.
49+
ErrReasonConflict = "node(s) had no available volume zone"
50+
)
4751

4852
// Name returns name of the plugin. It is used in logs, etc.
4953
func (pl *VolumeZone) Name() string {
@@ -153,7 +157,7 @@ func (pl *VolumeZone) Filter(ctx context.Context, _ *framework.CycleState, pod *
153157

154158
if !volumeVSet.Has(nodeV) {
155159
klog.V(10).Infof("Won't schedule pod %q onto node %q due to volume %q (mismatch on %q)", pod.Name, node.Name, pvName, k)
156-
return framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrVolumeZoneConflict.GetReason())
160+
return framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonConflict)
157161
}
158162
}
159163
}

pkg/scheduler/framework/plugins/volumezone/volume_zone_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
v1 "k8s.io/api/core/v1"
2525
storagev1 "k8s.io/api/storage/v1"
2626
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
27-
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates"
2827
framework "k8s.io/kubernetes/pkg/scheduler/framework/v1alpha1"
2928
fakelisters "k8s.io/kubernetes/pkg/scheduler/listers/fake"
3029
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
@@ -136,7 +135,7 @@ func TestSingleZone(t *testing.T) {
136135
Labels: map[string]string{v1.LabelZoneRegion: "no_us-west1-b", "uselessLabel": "none"},
137136
},
138137
},
139-
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrVolumeZoneConflict.GetReason()),
138+
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonConflict),
140139
},
141140
{
142141
name: "label zone failure domain failed match",
@@ -147,7 +146,7 @@ func TestSingleZone(t *testing.T) {
147146
Labels: map[string]string{v1.LabelZoneFailureDomain: "no_us-west1-a", "uselessLabel": "none"},
148147
},
149148
},
150-
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrVolumeZoneConflict.GetReason()),
149+
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonConflict),
151150
},
152151
}
153152

@@ -234,7 +233,7 @@ func TestMultiZone(t *testing.T) {
234233
Labels: map[string]string{v1.LabelZoneFailureDomain: "us-west1-b", "uselessLabel": "none"},
235234
},
236235
},
237-
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, predicates.ErrVolumeZoneConflict.GetReason()),
236+
wantStatus: framework.NewStatus(framework.UnschedulableAndUnresolvable, ErrReasonConflict),
238237
},
239238
}
240239

0 commit comments

Comments
 (0)