Skip to content

Commit bf2b709

Browse files
author
zouyee
committed
Move ResourceLimitsPriority to its Score plugin
Signed-off-by: Zou Nengren <[email protected]>
1 parent 2625390 commit bf2b709

File tree

11 files changed

+218
-141
lines changed

11 files changed

+218
-141
lines changed

pkg/scheduler/algorithm/priorities/BUILD

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ go_library(
1919
"reduce.go",
2020
"requested_to_capacity_ratio.go",
2121
"resource_allocation.go",
22-
"resource_limits.go",
2322
"selector_spreading.go",
2423
"test_util.go",
2524
"types.go",
@@ -56,7 +55,6 @@ go_test(
5655
"most_requested_test.go",
5756
"node_prefer_avoid_pods_test.go",
5857
"requested_to_capacity_ratio_test.go",
59-
"resource_limits_test.go",
6058
"selector_spreading_test.go",
6159
"spreading_perf_test.go",
6260
"types_test.go",

pkg/scheduler/algorithm/priorities/metadata.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ func NewMetadataFactory(
5656

5757
// priorityMetadata is a type that is passed as metadata for priority functions
5858
type priorityMetadata struct {
59-
podLimits *schedulernodeinfo.Resource
6059
podSelector labels.Selector
6160
controllerRef *metav1.OwnerReference
6261
podFirstServiceSelector labels.Selector
@@ -85,7 +84,6 @@ func (pmf *MetadataFactory) PriorityMetadata(
8584
return nil
8685
}
8786
return &priorityMetadata{
88-
podLimits: getResourceLimits(pod),
8987
podSelector: getSelector(pod, pmf.serviceLister, pmf.controllerLister, pmf.replicaSetLister, pmf.statefulSetLister),
9088
controllerRef: metav1.GetControllerOf(pod),
9189
podFirstServiceSelector: getFirstServiceSelector(pod, pmf.serviceLister),

pkg/scheduler/algorithm/priorities/metadata_test.go

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,6 @@ func TestPriorityMetadata(t *testing.T) {
3535
nonZeroReqs.MilliCPU = priorityutil.DefaultMilliCPURequest
3636
nonZeroReqs.Memory = priorityutil.DefaultMemoryRequest
3737

38-
specifiedReqs := &schedulernodeinfo.Resource{}
39-
specifiedReqs.MilliCPU = 200
40-
specifiedReqs.Memory = 2000
41-
42-
nonPodLimits := &schedulernodeinfo.Resource{}
43-
44-
specifiedPodLimits := &schedulernodeinfo.Resource{}
45-
specifiedPodLimits.MilliCPU = 200
46-
specifiedPodLimits.Memory = 2000
47-
4838
tolerations := []v1.Toleration{{
4939
Key: "foo",
5040
Operator: v1.TolerationOpEqual,
@@ -138,23 +128,20 @@ func TestPriorityMetadata(t *testing.T) {
138128
{
139129
pod: podWithTolerationsAndAffinity,
140130
expected: &priorityMetadata{
141-
podLimits: nonPodLimits,
142131
podSelector: labels.NewSelector(),
143132
},
144133
name: "Produce a priorityMetadata with default requests",
145134
},
146135
{
147136
pod: podWithTolerationsAndRequests,
148137
expected: &priorityMetadata{
149-
podLimits: nonPodLimits,
150138
podSelector: labels.NewSelector(),
151139
},
152140
name: "Produce a priorityMetadata with tolerations and requests",
153141
},
154142
{
155143
pod: podWithAffinityAndRequests,
156144
expected: &priorityMetadata{
157-
podLimits: specifiedPodLimits,
158145
podSelector: labels.NewSelector(),
159146
},
160147
name: "Produce a priorityMetadata with affinity and requests",

pkg/scheduler/algorithm/priorities/resource_limits.go

Lines changed: 0 additions & 105 deletions
This file was deleted.

pkg/scheduler/algorithmprovider/defaults/defaults.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ func ApplyFeatureGates() (restore func()) {
8181
// Prioritizes nodes that satisfy pod's resource limits
8282
if utilfeature.DefaultFeatureGate.Enabled(features.ResourceLimitsPriorityFunction) {
8383
klog.Infof("Registering resourcelimits priority function")
84-
scheduler.RegisterPriorityMapReduceFunction(priorities.ResourceLimitsPriority, priorities.ResourceLimitsPriorityMap, nil, 1)
84+
scheduler.RegisterPriorityMapReduceFunction(priorities.ResourceLimitsPriority, nil, nil, 1)
8585
// Register the priority function to specific provider too.
86-
scheduler.InsertPriorityKeyToAlgorithmProviderMap(scheduler.RegisterPriorityMapReduceFunction(priorities.ResourceLimitsPriority, priorities.ResourceLimitsPriorityMap, nil, 1))
86+
scheduler.InsertPriorityKeyToAlgorithmProviderMap(scheduler.RegisterPriorityMapReduceFunction(priorities.ResourceLimitsPriority, nil, nil, 1))
8787
}
8888

8989
restore = func() {

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

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,6 +1292,32 @@ func TestCompatibility_v1_Scheduler(t *testing.T) {
12921292
},
12931293
},
12941294
},
1295+
{
1296+
name: "enable alpha feature ResourceLimitsPriorityFunction",
1297+
JSON: `{
1298+
"kind": "Policy",
1299+
"apiVersion": "v1",
1300+
"predicates": [],
1301+
"priorities": [
1302+
{"name": "ResourceLimitsPriority", "weight": 2}
1303+
]
1304+
}`,
1305+
featureGates: map[featuregate.Feature]bool{
1306+
features.ResourceLimitsPriorityFunction: true,
1307+
},
1308+
wantPlugins: map[string][]config.Plugin{
1309+
"PostFilterPlugin": {
1310+
{Name: "NodeResourceLimits"},
1311+
},
1312+
"FilterPlugin": {
1313+
{Name: "NodeUnschedulable"},
1314+
{Name: "TaintToleration"},
1315+
},
1316+
"ScorePlugin": {
1317+
{Name: "NodeResourceLimits", Weight: 2},
1318+
},
1319+
},
1320+
},
12951321
}
12961322
registeredPredicates := sets.NewString(scheduler.ListRegisteredFitPredicates()...)
12971323
seenPredicates := sets.NewString()
@@ -1329,6 +1355,7 @@ func TestCompatibility_v1_Scheduler(t *testing.T) {
13291355
"RequestedToCapacityRatio": "RequestedToCapacityRatioPriority",
13301356
"NodeLabel": "TestLabelPreference",
13311357
"ServiceAffinity": "TestServiceAntiAffinity",
1358+
"ResourceLimitsPriority": "NodeResourceLimits",
13321359
}
13331360

13341361
for _, tc := range testcases {

pkg/scheduler/framework/plugins/noderesources/BUILD

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ go_library(
88
"least_allocated.go",
99
"most_allocated.go",
1010
"requested_to_capacity_ratio.go",
11+
"resource_limits.go",
1112
"test_util.go",
1213
],
1314
importpath = "k8s.io/kubernetes/pkg/scheduler/framework/plugins/noderesources",
@@ -49,6 +50,7 @@ go_test(
4950
"least_allocated_test.go",
5051
"most_allocated_test.go",
5152
"requested_to_capacity_ratio_test.go",
53+
"resource_limits_test.go",
5254
],
5355
embed = [":go_default_library"],
5456
deps = [

pkg/scheduler/framework/plugins/noderesources/most_allocated.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ func (ma *MostAllocated) Name() string {
4545
// Score invoked at the Score extension point.
4646
func (ma *MostAllocated) Score(ctx context.Context, state *framework.CycleState, pod *v1.Pod, nodeName string) (int64, *framework.Status) {
4747
nodeInfo, err := ma.handle.SnapshotSharedLister().NodeInfos().Get(nodeName)
48-
if err != nil {
49-
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("getting node %q from Snapshot: %v", nodeName, err))
48+
if err != nil || nodeInfo.Node() == nil {
49+
return 0, framework.NewStatus(framework.Error, fmt.Sprintf("getting node %q from Snapshot: %v, node is nil: %v", nodeName, err, nodeInfo.Node() == nil))
5050
}
5151

5252
// MostRequestedPriorityMap does not use priority metadata, hence we pass nil here

0 commit comments

Comments
 (0)