mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	Expose EventRecorder to scheduler FrameworkHandle
This commit is contained in:
		@@ -38,7 +38,6 @@ import (
 | 
				
			|||||||
	policylisters "k8s.io/client-go/listers/policy/v1beta1"
 | 
						policylisters "k8s.io/client-go/listers/policy/v1beta1"
 | 
				
			||||||
	"k8s.io/client-go/tools/cache"
 | 
						"k8s.io/client-go/tools/cache"
 | 
				
			||||||
	"k8s.io/klog/v2"
 | 
						"k8s.io/klog/v2"
 | 
				
			||||||
 | 
					 | 
				
			||||||
	kubefeatures "k8s.io/kubernetes/pkg/features"
 | 
						kubefeatures "k8s.io/kubernetes/pkg/features"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/scheduler/algorithmprovider"
 | 
						"k8s.io/kubernetes/pkg/scheduler/algorithmprovider"
 | 
				
			||||||
	schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
						schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,6 +34,7 @@ go_library(
 | 
				
			|||||||
        "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
 | 
					        "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/informers:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/informers:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
 | 
					        "//staging/src/k8s.io/client-go/kubernetes:go_default_library",
 | 
				
			||||||
 | 
					        "//staging/src/k8s.io/client-go/tools/events:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
					        "//staging/src/k8s.io/component-base/metrics:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/kube-scheduler/config/v1beta1:go_default_library",
 | 
					        "//staging/src/k8s.io/kube-scheduler/config/v1beta1:go_default_library",
 | 
				
			||||||
        "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library",
 | 
					        "//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/util/sets"
 | 
						"k8s.io/apimachinery/pkg/util/sets"
 | 
				
			||||||
	"k8s.io/client-go/informers"
 | 
						"k8s.io/client-go/informers"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
 | 
						"k8s.io/client-go/tools/events"
 | 
				
			||||||
	"k8s.io/klog/v2"
 | 
						"k8s.io/klog/v2"
 | 
				
			||||||
	"k8s.io/kube-scheduler/config/v1beta1"
 | 
						"k8s.io/kube-scheduler/config/v1beta1"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
						"k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
				
			||||||
@@ -79,6 +80,7 @@ type framework struct {
 | 
				
			|||||||
	permitPlugins         []PermitPlugin
 | 
						permitPlugins         []PermitPlugin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	clientSet       clientset.Interface
 | 
						clientSet       clientset.Interface
 | 
				
			||||||
 | 
						eventRecorder   events.EventRecorder
 | 
				
			||||||
	informerFactory informers.SharedInformerFactory
 | 
						informerFactory informers.SharedInformerFactory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	metricsRecorder *metricsRecorder
 | 
						metricsRecorder *metricsRecorder
 | 
				
			||||||
@@ -120,6 +122,7 @@ func (f *framework) getExtensionPoints(plugins *config.Plugins) []extensionPoint
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
type frameworkOptions struct {
 | 
					type frameworkOptions struct {
 | 
				
			||||||
	clientSet            clientset.Interface
 | 
						clientSet            clientset.Interface
 | 
				
			||||||
 | 
						eventRecorder        events.EventRecorder
 | 
				
			||||||
	informerFactory      informers.SharedInformerFactory
 | 
						informerFactory      informers.SharedInformerFactory
 | 
				
			||||||
	snapshotSharedLister SharedLister
 | 
						snapshotSharedLister SharedLister
 | 
				
			||||||
	metricsRecorder      *metricsRecorder
 | 
						metricsRecorder      *metricsRecorder
 | 
				
			||||||
@@ -138,6 +141,13 @@ func WithClientSet(clientSet clientset.Interface) Option {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// WithEventRecorder sets clientSet for the scheduling framework.
 | 
				
			||||||
 | 
					func WithEventRecorder(recorder events.EventRecorder) Option {
 | 
				
			||||||
 | 
						return func(o *frameworkOptions) {
 | 
				
			||||||
 | 
							o.eventRecorder = recorder
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// WithInformerFactory sets informer factory for the scheduling framework.
 | 
					// WithInformerFactory sets informer factory for the scheduling framework.
 | 
				
			||||||
func WithInformerFactory(informerFactory informers.SharedInformerFactory) Option {
 | 
					func WithInformerFactory(informerFactory informers.SharedInformerFactory) Option {
 | 
				
			||||||
	return func(o *frameworkOptions) {
 | 
						return func(o *frameworkOptions) {
 | 
				
			||||||
@@ -214,6 +224,7 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
 | 
				
			|||||||
		pluginNameToWeightMap: make(map[string]int),
 | 
							pluginNameToWeightMap: make(map[string]int),
 | 
				
			||||||
		waitingPods:           newWaitingPodsMap(),
 | 
							waitingPods:           newWaitingPodsMap(),
 | 
				
			||||||
		clientSet:             options.clientSet,
 | 
							clientSet:             options.clientSet,
 | 
				
			||||||
 | 
							eventRecorder:         options.eventRecorder,
 | 
				
			||||||
		informerFactory:       options.informerFactory,
 | 
							informerFactory:       options.informerFactory,
 | 
				
			||||||
		metricsRecorder:       options.metricsRecorder,
 | 
							metricsRecorder:       options.metricsRecorder,
 | 
				
			||||||
		runAllFilters:         options.runAllFilters,
 | 
							runAllFilters:         options.runAllFilters,
 | 
				
			||||||
@@ -962,6 +973,11 @@ func (f *framework) ClientSet() clientset.Interface {
 | 
				
			|||||||
	return f.clientSet
 | 
						return f.clientSet
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// EventRecorder returns an event recorder.
 | 
				
			||||||
 | 
					func (f *framework) EventRecorder() events.EventRecorder {
 | 
				
			||||||
 | 
						return f.eventRecorder
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// SharedInformerFactory returns a shared informer factory.
 | 
					// SharedInformerFactory returns a shared informer factory.
 | 
				
			||||||
func (f *framework) SharedInformerFactory() informers.SharedInformerFactory {
 | 
					func (f *framework) SharedInformerFactory() informers.SharedInformerFactory {
 | 
				
			||||||
	return f.informerFactory
 | 
						return f.informerFactory
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -29,6 +29,7 @@ import (
 | 
				
			|||||||
	"k8s.io/apimachinery/pkg/types"
 | 
						"k8s.io/apimachinery/pkg/types"
 | 
				
			||||||
	"k8s.io/client-go/informers"
 | 
						"k8s.io/client-go/informers"
 | 
				
			||||||
	clientset "k8s.io/client-go/kubernetes"
 | 
						clientset "k8s.io/client-go/kubernetes"
 | 
				
			||||||
 | 
						"k8s.io/client-go/tools/events"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
						"k8s.io/kubernetes/pkg/scheduler/apis/config"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -512,6 +513,9 @@ type FrameworkHandle interface {
 | 
				
			|||||||
	// ClientSet returns a kubernetes clientSet.
 | 
						// ClientSet returns a kubernetes clientSet.
 | 
				
			||||||
	ClientSet() clientset.Interface
 | 
						ClientSet() clientset.Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// EventRecorder returns an event recorder.
 | 
				
			||||||
 | 
						EventRecorder() events.EventRecorder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	SharedInformerFactory() informers.SharedInformerFactory
 | 
						SharedInformerFactory() informers.SharedInformerFactory
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// TODO: unroll the wrapped interfaces to FrameworkHandle.
 | 
						// TODO: unroll the wrapped interfaces to FrameworkHandle.
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -44,11 +44,11 @@ type Profile struct {
 | 
				
			|||||||
// NewProfile builds a Profile for the given configuration.
 | 
					// NewProfile builds a Profile for the given configuration.
 | 
				
			||||||
func NewProfile(cfg config.KubeSchedulerProfile, frameworkFact FrameworkFactory, recorderFact RecorderFactory,
 | 
					func NewProfile(cfg config.KubeSchedulerProfile, frameworkFact FrameworkFactory, recorderFact RecorderFactory,
 | 
				
			||||||
	opts ...framework.Option) (*Profile, error) {
 | 
						opts ...framework.Option) (*Profile, error) {
 | 
				
			||||||
	f, err := frameworkFact(cfg, opts...)
 | 
						r := recorderFact(cfg.SchedulerName)
 | 
				
			||||||
 | 
						f, err := frameworkFact(cfg, append(opts, framework.WithEventRecorder(r))...)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	r := recorderFact(cfg.SchedulerName)
 | 
					 | 
				
			||||||
	return &Profile{
 | 
						return &Profile{
 | 
				
			||||||
		Framework: f,
 | 
							Framework: f,
 | 
				
			||||||
		Recorder:  r,
 | 
							Recorder:  r,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user