Skip to content

Commit 2c7d431

Browse files
authored
Merge pull request kubernetes#91883 from SataQiu/deprecate-ResourceLimitsPriorityFunction-20200608
Remove ResourceLimitsPriorityFunction feature gate in the scheduler
2 parents 0e2220b + 932e61a commit 2c7d431

File tree

14 files changed

+0
-688
lines changed

14 files changed

+0
-688
lines changed

pkg/features/kube_features.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,12 +193,6 @@ const (
193193
// Postpone deletion of a PV or a PVC when they are being used
194194
StorageObjectInUseProtection featuregate.Feature = "StorageObjectInUseProtection"
195195

196-
// owner: @aveshagarwal
197-
// alpha: v1.9
198-
//
199-
// Enable resource limits priority function
200-
ResourceLimitsPriorityFunction featuregate.Feature = "ResourceLimitsPriorityFunction"
201-
202196
// owner: @m1093782566
203197
// GA: v1.11
204198
//
@@ -611,7 +605,6 @@ var defaultKubernetesFeatureGates = map[featuregate.Feature]featuregate.FeatureS
611605
CSINodeInfo: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.19
612606
BlockVolume: {Default: true, PreRelease: featuregate.GA, LockToDefault: true}, // remove in 1.20
613607
StorageObjectInUseProtection: {Default: true, PreRelease: featuregate.GA},
614-
ResourceLimitsPriorityFunction: {Default: false, PreRelease: featuregate.Alpha},
615608
SupportIPVSProxyMode: {Default: true, PreRelease: featuregate.GA},
616609
SupportPodPidsLimit: {Default: true, PreRelease: featuregate.Beta},
617610
SupportNodePidsLimit: {Default: true, PreRelease: featuregate.Beta},

pkg/scheduler/algorithmprovider/BUILD

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ go_library(
1111
srcs = ["registry.go"],
1212
importpath = "k8s.io/kubernetes/pkg/scheduler/algorithmprovider",
1313
deps = [
14-
"//pkg/features:go_default_library",
1514
"//pkg/scheduler/apis/config:go_default_library",
1615
"//pkg/scheduler/framework/plugins/defaultbinder:go_default_library",
1716
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library",
@@ -30,8 +29,6 @@ go_library(
3029
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
3130
"//pkg/scheduler/framework/plugins/volumerestrictions:go_default_library",
3231
"//pkg/scheduler/framework/plugins/volumezone:go_default_library",
33-
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
34-
"//vendor/k8s.io/klog/v2:go_default_library",
3532
],
3633
)
3734

@@ -40,7 +37,6 @@ go_test(
4037
srcs = ["registry_test.go"],
4138
embed = [":go_default_library"],
4239
deps = [
43-
"//pkg/features:go_default_library",
4440
"//pkg/scheduler/apis/config:go_default_library",
4541
"//pkg/scheduler/framework/plugins/defaultbinder:go_default_library",
4642
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library",
@@ -59,8 +55,6 @@ go_test(
5955
"//pkg/scheduler/framework/plugins/volumebinding:go_default_library",
6056
"//pkg/scheduler/framework/plugins/volumerestrictions:go_default_library",
6157
"//pkg/scheduler/framework/plugins/volumezone:go_default_library",
62-
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
63-
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
6458
"//vendor/github.com/google/go-cmp/cmp:go_default_library",
6559
],
6660
)

pkg/scheduler/algorithmprovider/registry.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ import (
2020
"sort"
2121
"strings"
2222

23-
utilfeature "k8s.io/apiserver/pkg/util/feature"
24-
"k8s.io/klog/v2"
25-
"k8s.io/kubernetes/pkg/features"
2623
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
2724
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder"
2825
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpodtopologyspread"
@@ -52,10 +49,7 @@ type Registry map[string]*schedulerapi.Plugins
5249
// NewRegistry returns an algorithm provider registry instance.
5350
func NewRegistry() Registry {
5451
defaultConfig := getDefaultConfig()
55-
applyFeatureGates(defaultConfig)
56-
5752
caConfig := getClusterAutoscalerConfig()
58-
applyFeatureGates(caConfig)
5953

6054
return Registry{
6155
schedulerapi.SchedulerDefaultProviderName: defaultConfig,
@@ -170,14 +164,3 @@ func getClusterAutoscalerConfig() *schedulerapi.Plugins {
170164
}
171165
return caConfig
172166
}
173-
174-
func applyFeatureGates(config *schedulerapi.Plugins) {
175-
// Prioritizes nodes that satisfy pod's resource limits
176-
if utilfeature.DefaultFeatureGate.Enabled(features.ResourceLimitsPriorityFunction) {
177-
klog.Infof("Registering resourcelimits priority function")
178-
s := schedulerapi.Plugin{Name: noderesources.ResourceLimitsName}
179-
config.PreScore.Enabled = append(config.PreScore.Enabled, s)
180-
s = schedulerapi.Plugin{Name: noderesources.ResourceLimitsName, Weight: 1}
181-
config.Score.Enabled = append(config.Score.Enabled, s)
182-
}
183-
}

pkg/scheduler/algorithmprovider/registry_test.go

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

2222
"github.com/google/go-cmp/cmp"
2323

24-
utilfeature "k8s.io/apiserver/pkg/util/feature"
25-
featuregatetesting "k8s.io/component-base/featuregate/testing"
26-
"k8s.io/kubernetes/pkg/features"
2724
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
2825
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder"
2926
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultpodtopologyspread"
@@ -132,194 +129,3 @@ func TestClusterAutoscalerProvider(t *testing.T) {
132129
t.Errorf("unexpected config diff (-want, +got): %s", diff)
133130
}
134131
}
135-
136-
func TestApplyFeatureGates(t *testing.T) {
137-
tests := []struct {
138-
name string
139-
featuresEnabled bool
140-
wantConfig *schedulerapi.Plugins
141-
}{
142-
{
143-
name: "Feature gates disabled",
144-
featuresEnabled: false,
145-
wantConfig: &schedulerapi.Plugins{
146-
QueueSort: &schedulerapi.PluginSet{
147-
Enabled: []schedulerapi.Plugin{
148-
{Name: queuesort.Name},
149-
},
150-
},
151-
PreFilter: &schedulerapi.PluginSet{
152-
Enabled: []schedulerapi.Plugin{
153-
{Name: noderesources.FitName},
154-
{Name: nodeports.Name},
155-
{Name: podtopologyspread.Name},
156-
{Name: interpodaffinity.Name},
157-
},
158-
},
159-
Filter: &schedulerapi.PluginSet{
160-
Enabled: []schedulerapi.Plugin{
161-
{Name: nodeunschedulable.Name},
162-
{Name: noderesources.FitName},
163-
{Name: nodename.Name},
164-
{Name: nodeports.Name},
165-
{Name: nodeaffinity.Name},
166-
{Name: volumerestrictions.Name},
167-
{Name: tainttoleration.Name},
168-
{Name: nodevolumelimits.EBSName},
169-
{Name: nodevolumelimits.GCEPDName},
170-
{Name: nodevolumelimits.CSIName},
171-
{Name: nodevolumelimits.AzureDiskName},
172-
{Name: volumebinding.Name},
173-
{Name: volumezone.Name},
174-
{Name: podtopologyspread.Name},
175-
{Name: interpodaffinity.Name},
176-
},
177-
},
178-
PreScore: &schedulerapi.PluginSet{
179-
Enabled: []schedulerapi.Plugin{
180-
{Name: interpodaffinity.Name},
181-
{Name: podtopologyspread.Name},
182-
{Name: defaultpodtopologyspread.Name},
183-
{Name: tainttoleration.Name},
184-
},
185-
},
186-
Score: &schedulerapi.PluginSet{
187-
Enabled: []schedulerapi.Plugin{
188-
{Name: noderesources.BalancedAllocationName, Weight: 1},
189-
{Name: imagelocality.Name, Weight: 1},
190-
{Name: interpodaffinity.Name, Weight: 1},
191-
{Name: noderesources.LeastAllocatedName, Weight: 1},
192-
{Name: nodeaffinity.Name, Weight: 1},
193-
{Name: nodepreferavoidpods.Name, Weight: 10000},
194-
{Name: podtopologyspread.Name, Weight: 2},
195-
{Name: defaultpodtopologyspread.Name, Weight: 1},
196-
{Name: tainttoleration.Name, Weight: 1},
197-
},
198-
},
199-
Reserve: &schedulerapi.PluginSet{
200-
Enabled: []schedulerapi.Plugin{
201-
{Name: volumebinding.Name},
202-
},
203-
},
204-
Unreserve: &schedulerapi.PluginSet{
205-
Enabled: []schedulerapi.Plugin{
206-
{Name: volumebinding.Name},
207-
},
208-
},
209-
PreBind: &schedulerapi.PluginSet{
210-
Enabled: []schedulerapi.Plugin{
211-
{Name: volumebinding.Name},
212-
},
213-
},
214-
Bind: &schedulerapi.PluginSet{
215-
Enabled: []schedulerapi.Plugin{
216-
{Name: defaultbinder.Name},
217-
},
218-
},
219-
PostBind: &schedulerapi.PluginSet{
220-
Enabled: []schedulerapi.Plugin{
221-
{Name: volumebinding.Name},
222-
},
223-
},
224-
},
225-
},
226-
{
227-
name: "Feature gates enabled",
228-
featuresEnabled: true,
229-
wantConfig: &schedulerapi.Plugins{
230-
QueueSort: &schedulerapi.PluginSet{
231-
Enabled: []schedulerapi.Plugin{
232-
{Name: queuesort.Name},
233-
},
234-
},
235-
PreFilter: &schedulerapi.PluginSet{
236-
Enabled: []schedulerapi.Plugin{
237-
{Name: noderesources.FitName},
238-
{Name: nodeports.Name},
239-
{Name: podtopologyspread.Name},
240-
{Name: interpodaffinity.Name},
241-
},
242-
},
243-
Filter: &schedulerapi.PluginSet{
244-
Enabled: []schedulerapi.Plugin{
245-
{Name: nodeunschedulable.Name},
246-
{Name: noderesources.FitName},
247-
{Name: nodename.Name},
248-
{Name: nodeports.Name},
249-
{Name: nodeaffinity.Name},
250-
{Name: volumerestrictions.Name},
251-
{Name: tainttoleration.Name},
252-
{Name: nodevolumelimits.EBSName},
253-
{Name: nodevolumelimits.GCEPDName},
254-
{Name: nodevolumelimits.CSIName},
255-
{Name: nodevolumelimits.AzureDiskName},
256-
{Name: volumebinding.Name},
257-
{Name: volumezone.Name},
258-
{Name: podtopologyspread.Name},
259-
{Name: interpodaffinity.Name},
260-
},
261-
},
262-
PreScore: &schedulerapi.PluginSet{
263-
Enabled: []schedulerapi.Plugin{
264-
{Name: interpodaffinity.Name},
265-
{Name: podtopologyspread.Name},
266-
{Name: defaultpodtopologyspread.Name},
267-
{Name: tainttoleration.Name},
268-
{Name: noderesources.ResourceLimitsName},
269-
},
270-
},
271-
Score: &schedulerapi.PluginSet{
272-
Enabled: []schedulerapi.Plugin{
273-
{Name: noderesources.BalancedAllocationName, Weight: 1},
274-
{Name: imagelocality.Name, Weight: 1},
275-
{Name: interpodaffinity.Name, Weight: 1},
276-
{Name: noderesources.LeastAllocatedName, Weight: 1},
277-
{Name: nodeaffinity.Name, Weight: 1},
278-
{Name: nodepreferavoidpods.Name, Weight: 10000},
279-
{Name: podtopologyspread.Name, Weight: 2},
280-
{Name: defaultpodtopologyspread.Name, Weight: 1},
281-
{Name: tainttoleration.Name, Weight: 1},
282-
{Name: noderesources.ResourceLimitsName, Weight: 1},
283-
},
284-
},
285-
Reserve: &schedulerapi.PluginSet{
286-
Enabled: []schedulerapi.Plugin{
287-
{Name: volumebinding.Name},
288-
},
289-
},
290-
Unreserve: &schedulerapi.PluginSet{
291-
Enabled: []schedulerapi.Plugin{
292-
{Name: volumebinding.Name},
293-
},
294-
},
295-
PreBind: &schedulerapi.PluginSet{
296-
Enabled: []schedulerapi.Plugin{
297-
{Name: volumebinding.Name},
298-
},
299-
},
300-
Bind: &schedulerapi.PluginSet{
301-
Enabled: []schedulerapi.Plugin{
302-
{Name: defaultbinder.Name},
303-
},
304-
},
305-
PostBind: &schedulerapi.PluginSet{
306-
Enabled: []schedulerapi.Plugin{
307-
{Name: volumebinding.Name},
308-
},
309-
},
310-
},
311-
},
312-
}
313-
314-
for _, test := range tests {
315-
t.Run(test.name, func(t *testing.T) {
316-
defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ResourceLimitsPriorityFunction, test.featuresEnabled)()
317-
318-
r := NewRegistry()
319-
gotConfig := r[schedulerapi.SchedulerDefaultProviderName]
320-
if diff := cmp.Diff(test.wantConfig, gotConfig); diff != "" {
321-
t.Errorf("unexpected config diff (-want, +got): %s", diff)
322-
}
323-
})
324-
}
325-
}

pkg/scheduler/apis/config/testing/BUILD

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ go_test(
88
],
99
deps = [
1010
"//pkg/apis/core/install:go_default_library",
11-
"//pkg/features:go_default_library",
1211
"//pkg/scheduler:go_default_library",
1312
"//pkg/scheduler/algorithmprovider:go_default_library",
1413
"//pkg/scheduler/apis/config:go_default_library",

pkg/scheduler/apis/config/testing/compatibility_test.go

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ import (
3131
"k8s.io/component-base/featuregate"
3232
featuregatetesting "k8s.io/component-base/featuregate/testing"
3333
_ "k8s.io/kubernetes/pkg/apis/core/install"
34-
"k8s.io/kubernetes/pkg/features"
3534
"k8s.io/kubernetes/pkg/scheduler"
3635
"k8s.io/kubernetes/pkg/scheduler/algorithmprovider"
3736
"k8s.io/kubernetes/pkg/scheduler/apis/config"
@@ -1319,34 +1318,6 @@ func TestCompatibility_v1_Scheduler(t *testing.T) {
13191318
Ignorable: true,
13201319
}},
13211320
},
1322-
{
1323-
name: "enable alpha feature ResourceLimitsPriorityFunction",
1324-
JSON: `{
1325-
"kind": "Policy",
1326-
"apiVersion": "v1",
1327-
"predicates": [],
1328-
"priorities": [
1329-
{"name": "ResourceLimitsPriority", "weight": 2}
1330-
]
1331-
}`,
1332-
featureGates: map[featuregate.Feature]bool{
1333-
features.ResourceLimitsPriorityFunction: true,
1334-
},
1335-
wantPlugins: map[string][]config.Plugin{
1336-
"QueueSortPlugin": {{Name: "PrioritySort"}},
1337-
"PreScorePlugin": {
1338-
{Name: "NodeResourceLimits"},
1339-
},
1340-
"FilterPlugin": {
1341-
{Name: "NodeUnschedulable"},
1342-
{Name: "TaintToleration"},
1343-
},
1344-
"ScorePlugin": {
1345-
{Name: "NodeResourceLimits", Weight: 2},
1346-
},
1347-
"BindPlugin": {{Name: "DefaultBinder"}},
1348-
},
1349-
},
13501321
}
13511322
for _, tc := range testcases {
13521323
t.Run(tc.name, func(t *testing.T) {

pkg/scheduler/framework/plugins/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ go_library(
99
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins",
1010
visibility = ["//visibility:public"],
1111
deps = [
12-
"//pkg/features:go_default_library",
1312
"//pkg/scheduler/apis/config:go_default_library",
1413
"//pkg/scheduler/framework/plugins/defaultbinder:go_default_library",
1514
"//pkg/scheduler/framework/plugins/defaultpodtopologyspread:go_default_library",
@@ -32,7 +31,6 @@ go_library(
3231
"//pkg/scheduler/framework/plugins/volumezone:go_default_library",
3332
"//pkg/scheduler/framework/v1alpha1:go_default_library",
3433
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
35-
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
3634
"//vendor/k8s.io/klog/v2:go_default_library",
3735
],
3836
)

0 commit comments

Comments
 (0)