mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-06 16:06:51 +00:00
Add plugin invocation for 'reserve' and 'prebind' plugins to the scheduler.
This commit is contained in:
@@ -516,6 +516,7 @@ func TestGenericSchedulerWithExtenders(t *testing.T) {
|
||||
algorithm.EmptyPredicateMetadataProducer,
|
||||
test.prioritizers,
|
||||
algorithm.EmptyPriorityMetadataProducer,
|
||||
emptyPluginSet,
|
||||
extenders,
|
||||
nil,
|
||||
schedulertesting.FakePersistentVolumeClaimLister{},
|
||||
|
||||
@@ -44,6 +44,7 @@ import (
|
||||
schedulerinternalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
|
||||
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
|
||||
"k8s.io/kubernetes/pkg/scheduler/metrics"
|
||||
pluginsv1alpha1 "k8s.io/kubernetes/pkg/scheduler/plugins/v1alpha1"
|
||||
"k8s.io/kubernetes/pkg/scheduler/util"
|
||||
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
|
||||
)
|
||||
@@ -103,6 +104,7 @@ type genericScheduler struct {
|
||||
priorityMetaProducer algorithm.PriorityMetadataProducer
|
||||
predicateMetaProducer algorithm.PredicateMetadataProducer
|
||||
prioritizers []algorithm.PriorityConfig
|
||||
pluginSet pluginsv1alpha1.PluginSet
|
||||
extenders []algorithm.SchedulerExtender
|
||||
lastNodeIndex uint64
|
||||
alwaysCheckAllPredicates bool
|
||||
@@ -1152,6 +1154,7 @@ func NewGenericScheduler(
|
||||
predicateMetaProducer algorithm.PredicateMetadataProducer,
|
||||
prioritizers []algorithm.PriorityConfig,
|
||||
priorityMetaProducer algorithm.PriorityMetadataProducer,
|
||||
pluginSet pluginsv1alpha1.PluginSet,
|
||||
extenders []algorithm.SchedulerExtender,
|
||||
volumeBinder *volumebinder.VolumeBinder,
|
||||
pvcLister corelisters.PersistentVolumeClaimLister,
|
||||
@@ -1168,6 +1171,7 @@ func NewGenericScheduler(
|
||||
predicateMetaProducer: predicateMetaProducer,
|
||||
prioritizers: prioritizers,
|
||||
priorityMetaProducer: priorityMetaProducer,
|
||||
pluginSet: pluginSet,
|
||||
extenders: extenders,
|
||||
cachedNodeInfoMap: make(map[string]*schedulercache.NodeInfo),
|
||||
volumeBinder: volumeBinder,
|
||||
|
||||
@@ -43,6 +43,7 @@ import (
|
||||
"k8s.io/kubernetes/pkg/scheduler/core/equivalence"
|
||||
schedulerinternalcache "k8s.io/kubernetes/pkg/scheduler/internal/cache"
|
||||
internalqueue "k8s.io/kubernetes/pkg/scheduler/internal/queue"
|
||||
plugins "k8s.io/kubernetes/pkg/scheduler/plugins/v1alpha1"
|
||||
schedulertesting "k8s.io/kubernetes/pkg/scheduler/testing"
|
||||
)
|
||||
|
||||
@@ -135,6 +136,28 @@ func getNodeReducePriority(pod *v1.Pod, meta interface{}, nodeNameToInfo map[str
|
||||
return nil
|
||||
}
|
||||
|
||||
// EmptyPluginSet is a test plugin set used by the default scheduler.
|
||||
type EmptyPluginSet struct{}
|
||||
|
||||
var _ plugins.PluginSet = EmptyPluginSet{}
|
||||
|
||||
// ReservePlugins returns a slice of default reserve plugins.
|
||||
func (r EmptyPluginSet) ReservePlugins() []plugins.ReservePlugin {
|
||||
return []plugins.ReservePlugin{}
|
||||
}
|
||||
|
||||
// PrebindPlugins returns a slice of default prebind plugins.
|
||||
func (r EmptyPluginSet) PrebindPlugins() []plugins.PrebindPlugin {
|
||||
return []plugins.PrebindPlugin{}
|
||||
}
|
||||
|
||||
// Data returns a pointer to PluginData.
|
||||
func (r EmptyPluginSet) Data() *plugins.PluginData {
|
||||
return &plugins.PluginData{}
|
||||
}
|
||||
|
||||
var emptyPluginSet = &EmptyPluginSet{}
|
||||
|
||||
func makeNodeList(nodeNames []string) []*v1.Node {
|
||||
result := make([]*v1.Node, 0, len(nodeNames))
|
||||
for _, nodeName := range nodeNames {
|
||||
@@ -454,6 +477,7 @@ func TestGenericScheduler(t *testing.T) {
|
||||
algorithm.EmptyPredicateMetadataProducer,
|
||||
test.prioritizers,
|
||||
algorithm.EmptyPriorityMetadataProducer,
|
||||
emptyPluginSet,
|
||||
[]algorithm.SchedulerExtender{},
|
||||
nil,
|
||||
pvcLister,
|
||||
@@ -490,6 +514,7 @@ func makeScheduler(predicates map[string]algorithm.FitPredicate, nodes []*v1.Nod
|
||||
algorithm.EmptyPredicateMetadataProducer,
|
||||
prioritizers,
|
||||
algorithm.EmptyPriorityMetadataProducer,
|
||||
emptyPluginSet,
|
||||
nil, nil, nil, nil, false, false,
|
||||
schedulerapi.DefaultPercentageOfNodesToScore)
|
||||
cache.UpdateNodeNameToInfoMap(s.(*genericScheduler).cachedNodeInfoMap)
|
||||
@@ -1416,6 +1441,7 @@ func TestPreempt(t *testing.T) {
|
||||
algorithm.EmptyPredicateMetadataProducer,
|
||||
[]algorithm.PriorityConfig{{Function: numericPriority, Weight: 1}},
|
||||
algorithm.EmptyPriorityMetadataProducer,
|
||||
emptyPluginSet,
|
||||
extenders,
|
||||
nil,
|
||||
schedulertesting.FakePersistentVolumeClaimLister{},
|
||||
@@ -1543,6 +1569,7 @@ func TestCacheInvalidationRace(t *testing.T) {
|
||||
algorithm.EmptyPredicateMetadataProducer,
|
||||
prioritizers,
|
||||
algorithm.EmptyPriorityMetadataProducer,
|
||||
emptyPluginSet,
|
||||
nil, nil, pvcLister, pdbLister,
|
||||
true, false,
|
||||
schedulerapi.DefaultPercentageOfNodesToScore)
|
||||
@@ -1626,6 +1653,7 @@ func TestCacheInvalidationRace2(t *testing.T) {
|
||||
algorithm.EmptyPredicateMetadataProducer,
|
||||
prioritizers,
|
||||
algorithm.EmptyPriorityMetadataProducer,
|
||||
emptyPluginSet,
|
||||
nil, nil, pvcLister, pdbLister, true, false,
|
||||
schedulerapi.DefaultPercentageOfNodesToScore)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user