12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package priorities
- import (
- v1 "k8s.io/api/core/v1"
- schedulerapi "k8s.io/kubernetes/pkg/scheduler/api"
- schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
- )
- func NormalizeReduce(maxPriority int, reverse bool) PriorityReduceFunction {
- return func(
- _ *v1.Pod,
- _ interface{},
- _ map[string]*schedulernodeinfo.NodeInfo,
- result schedulerapi.HostPriorityList) error {
- var maxCount float64
- for i := range result {
- if result[i].Score > maxCount {
- maxCount = result[i].Score
- }
- }
- if maxCount == 0 {
- if reverse {
- for i := range result {
- result[i].Score = float64(maxPriority)
- }
- }
- return nil
- }
- for i := range result {
- score := result[i].Score
- score = float64(maxPriority) * score / maxCount
- if reverse {
- score = float64(maxPriority) - score
- }
- result[i].Score = score
- }
- return nil
- }
- }
|