mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Add VolumeBinder to FrameworkHandle interface
This commit is contained in:
parent
dd5272b76f
commit
5def91d778
@ -122,6 +122,7 @@ func (c *Configurator) create(extenders []algorithm.SchedulerExtender) (*Schedul
|
|||||||
framework.WithInformerFactory(c.informerFactory),
|
framework.WithInformerFactory(c.informerFactory),
|
||||||
framework.WithSnapshotSharedLister(c.nodeInfoSnapshot),
|
framework.WithSnapshotSharedLister(c.nodeInfoSnapshot),
|
||||||
framework.WithRunAllFilters(c.alwaysCheckAllPredicates),
|
framework.WithRunAllFilters(c.alwaysCheckAllPredicates),
|
||||||
|
framework.WithVolumeBinder(c.volumeBinder),
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Fatalf("error initializing the scheduling framework: %v", err)
|
klog.Fatalf("error initializing the scheduling framework: %v", err)
|
||||||
|
@ -18,6 +18,7 @@ go_library(
|
|||||||
"//pkg/scheduler/metrics:go_default_library",
|
"//pkg/scheduler/metrics:go_default_library",
|
||||||
"//pkg/scheduler/nodeinfo:go_default_library",
|
"//pkg/scheduler/nodeinfo:go_default_library",
|
||||||
"//pkg/scheduler/util:go_default_library",
|
"//pkg/scheduler/util:go_default_library",
|
||||||
|
"//pkg/scheduler/volumebinder:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
|
@ -35,6 +35,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/scheduler/metrics"
|
"k8s.io/kubernetes/pkg/scheduler/metrics"
|
||||||
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
||||||
schedutil "k8s.io/kubernetes/pkg/scheduler/util"
|
schedutil "k8s.io/kubernetes/pkg/scheduler/util"
|
||||||
|
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -76,6 +77,7 @@ type framework struct {
|
|||||||
|
|
||||||
clientSet clientset.Interface
|
clientSet clientset.Interface
|
||||||
informerFactory informers.SharedInformerFactory
|
informerFactory informers.SharedInformerFactory
|
||||||
|
volumeBinder *volumebinder.VolumeBinder
|
||||||
|
|
||||||
metricsRecorder *metricsRecorder
|
metricsRecorder *metricsRecorder
|
||||||
|
|
||||||
@ -116,6 +118,7 @@ type frameworkOptions struct {
|
|||||||
informerFactory informers.SharedInformerFactory
|
informerFactory informers.SharedInformerFactory
|
||||||
snapshotSharedLister schedulerlisters.SharedLister
|
snapshotSharedLister schedulerlisters.SharedLister
|
||||||
metricsRecorder *metricsRecorder
|
metricsRecorder *metricsRecorder
|
||||||
|
volumeBinder *volumebinder.VolumeBinder
|
||||||
runAllFilters bool
|
runAllFilters bool
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,6 +161,13 @@ func withMetricsRecorder(recorder *metricsRecorder) Option {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithVolumeBinder sets volume binder for the scheduling framework.
|
||||||
|
func WithVolumeBinder(binder *volumebinder.VolumeBinder) Option {
|
||||||
|
return func(o *frameworkOptions) {
|
||||||
|
o.volumeBinder = binder
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var defaultFrameworkOptions = frameworkOptions{
|
var defaultFrameworkOptions = frameworkOptions{
|
||||||
metricsRecorder: newMetricsRecorder(1000, time.Second),
|
metricsRecorder: newMetricsRecorder(1000, time.Second),
|
||||||
}
|
}
|
||||||
@ -178,6 +188,7 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
|
|||||||
waitingPods: newWaitingPodsMap(),
|
waitingPods: newWaitingPodsMap(),
|
||||||
clientSet: options.clientSet,
|
clientSet: options.clientSet,
|
||||||
informerFactory: options.informerFactory,
|
informerFactory: options.informerFactory,
|
||||||
|
volumeBinder: options.volumeBinder,
|
||||||
metricsRecorder: options.metricsRecorder,
|
metricsRecorder: options.metricsRecorder,
|
||||||
runAllFilters: options.runAllFilters,
|
runAllFilters: options.runAllFilters,
|
||||||
}
|
}
|
||||||
@ -893,6 +904,11 @@ func (f *framework) SharedInformerFactory() informers.SharedInformerFactory {
|
|||||||
return f.informerFactory
|
return f.informerFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// VolumeBinder returns the volume binder used by scheduler.
|
||||||
|
func (f *framework) VolumeBinder() *volumebinder.VolumeBinder {
|
||||||
|
return f.volumeBinder
|
||||||
|
}
|
||||||
|
|
||||||
func (f *framework) pluginsNeeded(plugins *config.Plugins) map[string]config.Plugin {
|
func (f *framework) pluginsNeeded(plugins *config.Plugins) map[string]config.Plugin {
|
||||||
pgMap := make(map[string]config.Plugin)
|
pgMap := make(map[string]config.Plugin)
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/scheduler/apis/config"
|
"k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||||
schedulerlisters "k8s.io/kubernetes/pkg/scheduler/listers"
|
schedulerlisters "k8s.io/kubernetes/pkg/scheduler/listers"
|
||||||
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
||||||
|
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NodeScoreList declares a list of nodes and their scores.
|
// NodeScoreList declares a list of nodes and their scores.
|
||||||
@ -483,4 +484,7 @@ type FrameworkHandle interface {
|
|||||||
ClientSet() clientset.Interface
|
ClientSet() clientset.Interface
|
||||||
|
|
||||||
SharedInformerFactory() informers.SharedInformerFactory
|
SharedInformerFactory() informers.SharedInformerFactory
|
||||||
|
|
||||||
|
// VolumeBinder returns the volume binder used by scheduler.
|
||||||
|
VolumeBinder() *volumebinder.VolumeBinder
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,7 @@ go_test(
|
|||||||
"//pkg/scheduler/nodeinfo:go_default_library",
|
"//pkg/scheduler/nodeinfo:go_default_library",
|
||||||
"//pkg/scheduler/nodeinfo/snapshot:go_default_library",
|
"//pkg/scheduler/nodeinfo/snapshot:go_default_library",
|
||||||
"//pkg/scheduler/util:go_default_library",
|
"//pkg/scheduler/util:go_default_library",
|
||||||
|
"//pkg/scheduler/volumebinder:go_default_library",
|
||||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||||
|
@ -40,6 +40,7 @@ import (
|
|||||||
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
schedulernodeinfo "k8s.io/kubernetes/pkg/scheduler/nodeinfo"
|
||||||
nodeinfosnapshot "k8s.io/kubernetes/pkg/scheduler/nodeinfo/snapshot"
|
nodeinfosnapshot "k8s.io/kubernetes/pkg/scheduler/nodeinfo/snapshot"
|
||||||
"k8s.io/kubernetes/pkg/scheduler/util"
|
"k8s.io/kubernetes/pkg/scheduler/util"
|
||||||
|
"k8s.io/kubernetes/pkg/scheduler/volumebinder"
|
||||||
)
|
)
|
||||||
|
|
||||||
const queueMetricMetadata = `
|
const queueMetricMetadata = `
|
||||||
@ -258,6 +259,10 @@ func (*fakeFramework) SnapshotSharedLister() schedulerlisters.SharedLister {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (*fakeFramework) VolumeBinder() *volumebinder.VolumeBinder {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func TestPriorityQueue_AddWithReversePriorityLessFunc(t *testing.T) {
|
func TestPriorityQueue_AddWithReversePriorityLessFunc(t *testing.T) {
|
||||||
q := createAndRunPriorityQueue(&fakeFramework{})
|
q := createAndRunPriorityQueue(&fakeFramework{})
|
||||||
if err := q.Add(&medPriorityPod); err != nil {
|
if err := q.Add(&medPriorityPod); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user