Skip to content

Commit 6bb7e8a

Browse files
authored
Merge pull request kubernetes#92010 from Huang-Wei/sched-fwk-expose-EventRecorder
Expose EventRecorder to scheduler FrameworkHandle
2 parents 5372e01 + 7dfabd7 commit 6bb7e8a

File tree

5 files changed

+23
-3
lines changed

5 files changed

+23
-3
lines changed

pkg/scheduler/factory.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import (
3838
policylisters "k8s.io/client-go/listers/policy/v1beta1"
3939
"k8s.io/client-go/tools/cache"
4040
"k8s.io/klog/v2"
41-
4241
kubefeatures "k8s.io/kubernetes/pkg/features"
4342
"k8s.io/kubernetes/pkg/scheduler/algorithmprovider"
4443
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"

pkg/scheduler/framework/v1alpha1/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ go_library(
3434
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
3535
"//staging/src/k8s.io/client-go/informers:go_default_library",
3636
"//staging/src/k8s.io/client-go/kubernetes:go_default_library",
37+
"//staging/src/k8s.io/client-go/tools/events:go_default_library",
3738
"//staging/src/k8s.io/component-base/metrics:go_default_library",
3839
"//staging/src/k8s.io/kube-scheduler/config/v1beta1:go_default_library",
3940
"//staging/src/k8s.io/kube-scheduler/extender/v1:go_default_library",

pkg/scheduler/framework/v1alpha1/framework.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"k8s.io/apimachinery/pkg/util/sets"
2929
"k8s.io/client-go/informers"
3030
clientset "k8s.io/client-go/kubernetes"
31+
"k8s.io/client-go/tools/events"
3132
"k8s.io/klog/v2"
3233
"k8s.io/kube-scheduler/config/v1beta1"
3334
"k8s.io/kubernetes/pkg/scheduler/apis/config"
@@ -79,6 +80,7 @@ type framework struct {
7980
permitPlugins []PermitPlugin
8081

8182
clientSet clientset.Interface
83+
eventRecorder events.EventRecorder
8284
informerFactory informers.SharedInformerFactory
8385

8486
metricsRecorder *metricsRecorder
@@ -120,6 +122,7 @@ func (f *framework) getExtensionPoints(plugins *config.Plugins) []extensionPoint
120122

121123
type frameworkOptions struct {
122124
clientSet clientset.Interface
125+
eventRecorder events.EventRecorder
123126
informerFactory informers.SharedInformerFactory
124127
snapshotSharedLister SharedLister
125128
metricsRecorder *metricsRecorder
@@ -138,6 +141,13 @@ func WithClientSet(clientSet clientset.Interface) Option {
138141
}
139142
}
140143

144+
// WithEventRecorder sets clientSet for the scheduling framework.
145+
func WithEventRecorder(recorder events.EventRecorder) Option {
146+
return func(o *frameworkOptions) {
147+
o.eventRecorder = recorder
148+
}
149+
}
150+
141151
// WithInformerFactory sets informer factory for the scheduling framework.
142152
func WithInformerFactory(informerFactory informers.SharedInformerFactory) Option {
143153
return func(o *frameworkOptions) {
@@ -214,6 +224,7 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
214224
pluginNameToWeightMap: make(map[string]int),
215225
waitingPods: newWaitingPodsMap(),
216226
clientSet: options.clientSet,
227+
eventRecorder: options.eventRecorder,
217228
informerFactory: options.informerFactory,
218229
metricsRecorder: options.metricsRecorder,
219230
runAllFilters: options.runAllFilters,
@@ -962,6 +973,11 @@ func (f *framework) ClientSet() clientset.Interface {
962973
return f.clientSet
963974
}
964975

976+
// EventRecorder returns an event recorder.
977+
func (f *framework) EventRecorder() events.EventRecorder {
978+
return f.eventRecorder
979+
}
980+
965981
// SharedInformerFactory returns a shared informer factory.
966982
func (f *framework) SharedInformerFactory() informers.SharedInformerFactory {
967983
return f.informerFactory

pkg/scheduler/framework/v1alpha1/interface.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import (
2929
"k8s.io/apimachinery/pkg/types"
3030
"k8s.io/client-go/informers"
3131
clientset "k8s.io/client-go/kubernetes"
32+
"k8s.io/client-go/tools/events"
3233
"k8s.io/kubernetes/pkg/scheduler/apis/config"
3334
)
3435

@@ -512,6 +513,9 @@ type FrameworkHandle interface {
512513
// ClientSet returns a kubernetes clientSet.
513514
ClientSet() clientset.Interface
514515

516+
// EventRecorder returns an event recorder.
517+
EventRecorder() events.EventRecorder
518+
515519
SharedInformerFactory() informers.SharedInformerFactory
516520

517521
// TODO: unroll the wrapped interfaces to FrameworkHandle.

pkg/scheduler/profile/profile.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ type Profile struct {
4444
// NewProfile builds a Profile for the given configuration.
4545
func NewProfile(cfg config.KubeSchedulerProfile, frameworkFact FrameworkFactory, recorderFact RecorderFactory,
4646
opts ...framework.Option) (*Profile, error) {
47-
f, err := frameworkFact(cfg, opts...)
47+
r := recorderFact(cfg.SchedulerName)
48+
f, err := frameworkFact(cfg, append(opts, framework.WithEventRecorder(r))...)
4849
if err != nil {
4950
return nil, err
5051
}
51-
r := recorderFact(cfg.SchedulerName)
5252
return &Profile{
5353
Framework: f,
5454
Recorder: r,

0 commit comments

Comments
 (0)