mirror of https://github.com/k3s-io/k3s
Merge pull request #72615 from xiaoanyunfei/cleanup/getBinderFunc
Change `getBinderFunc` from method to functionpull/564/head
commit
bd8edc27db
|
@ -821,24 +821,6 @@ func (c *configFactory) CreateFromConfig(policy schedulerapi.Policy) (*Config, e
|
||||||
return c.CreateFromKeys(predicateKeys, priorityKeys, extenders)
|
return c.CreateFromKeys(predicateKeys, priorityKeys, extenders)
|
||||||
}
|
}
|
||||||
|
|
||||||
// getBinderFunc returns an func which returns an extender that supports bind or a default binder based on the given pod.
|
|
||||||
func (c *configFactory) getBinderFunc(extenders []algorithm.SchedulerExtender) func(pod *v1.Pod) Binder {
|
|
||||||
var extenderBinder algorithm.SchedulerExtender
|
|
||||||
for i := range extenders {
|
|
||||||
if extenders[i].IsBinder() {
|
|
||||||
extenderBinder = extenders[i]
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
defaultBinder := &binder{c.client}
|
|
||||||
return func(pod *v1.Pod) Binder {
|
|
||||||
if extenderBinder != nil && extenderBinder.IsInterested(pod) {
|
|
||||||
return extenderBinder
|
|
||||||
}
|
|
||||||
return defaultBinder
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Creates a scheduler from a set of registered fit predicate keys and priority keys.
|
// Creates a scheduler from a set of registered fit predicate keys and priority keys.
|
||||||
func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String, extenders []algorithm.SchedulerExtender) (*Config, error) {
|
func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String, extenders []algorithm.SchedulerExtender) (*Config, error) {
|
||||||
klog.V(2).Infof("Creating scheduler with fit predicates '%v' and priority functions '%v'", predicateKeys, priorityKeys)
|
klog.V(2).Infof("Creating scheduler with fit predicates '%v' and priority functions '%v'", predicateKeys, priorityKeys)
|
||||||
|
@ -893,7 +875,7 @@ func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String,
|
||||||
// The scheduler only needs to consider schedulable nodes.
|
// The scheduler only needs to consider schedulable nodes.
|
||||||
NodeLister: &nodeLister{c.nodeLister},
|
NodeLister: &nodeLister{c.nodeLister},
|
||||||
Algorithm: algo,
|
Algorithm: algo,
|
||||||
GetBinder: c.getBinderFunc(extenders),
|
GetBinder: getBinderFunc(c.client, extenders),
|
||||||
PodConditionUpdater: &podConditionUpdater{c.client},
|
PodConditionUpdater: &podConditionUpdater{c.client},
|
||||||
PodPreemptor: &podPreemptor{c.client},
|
PodPreemptor: &podPreemptor{c.client},
|
||||||
PluginSet: c.pluginSet,
|
PluginSet: c.pluginSet,
|
||||||
|
@ -908,6 +890,24 @@ func (c *configFactory) CreateFromKeys(predicateKeys, priorityKeys sets.String,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// getBinderFunc returns a func which returns an extender that supports bind or a default binder based on the given pod.
|
||||||
|
func getBinderFunc(client clientset.Interface, extenders []algorithm.SchedulerExtender) func(pod *v1.Pod) Binder {
|
||||||
|
var extenderBinder algorithm.SchedulerExtender
|
||||||
|
for i := range extenders {
|
||||||
|
if extenders[i].IsBinder() {
|
||||||
|
extenderBinder = extenders[i]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defaultBinder := &binder{client}
|
||||||
|
return func(pod *v1.Pod) Binder {
|
||||||
|
if extenderBinder != nil && extenderBinder.IsInterested(pod) {
|
||||||
|
return extenderBinder
|
||||||
|
}
|
||||||
|
return defaultBinder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type nodeLister struct {
|
type nodeLister struct {
|
||||||
corelisters.NodeLister
|
corelisters.NodeLister
|
||||||
}
|
}
|
||||||
|
|
|
@ -645,7 +645,7 @@ func testGetBinderFunc(expectedBinderType, podName string, extenders []algorithm
|
||||||
}
|
}
|
||||||
|
|
||||||
f := &configFactory{}
|
f := &configFactory{}
|
||||||
binderFunc := f.getBinderFunc(extenders)
|
binderFunc := getBinderFunc(f.client, extenders)
|
||||||
binder := binderFunc(pod)
|
binder := binderFunc(pod)
|
||||||
|
|
||||||
binderType := fmt.Sprintf("%s", reflect.TypeOf(binder))
|
binderType := fmt.Sprintf("%s", reflect.TypeOf(binder))
|
||||||
|
|
Loading…
Reference in New Issue