@@ -28,6 +28,7 @@ import (
28
28
"k8s.io/apimachinery/pkg/util/sets"
29
29
"k8s.io/client-go/informers"
30
30
clientset "k8s.io/client-go/kubernetes"
31
+ "k8s.io/client-go/tools/events"
31
32
"k8s.io/klog/v2"
32
33
"k8s.io/kube-scheduler/config/v1beta1"
33
34
"k8s.io/kubernetes/pkg/scheduler/apis/config"
@@ -79,6 +80,7 @@ type framework struct {
79
80
permitPlugins []PermitPlugin
80
81
81
82
clientSet clientset.Interface
83
+ eventRecorder events.EventRecorder
82
84
informerFactory informers.SharedInformerFactory
83
85
84
86
metricsRecorder * metricsRecorder
@@ -120,6 +122,7 @@ func (f *framework) getExtensionPoints(plugins *config.Plugins) []extensionPoint
120
122
121
123
type frameworkOptions struct {
122
124
clientSet clientset.Interface
125
+ eventRecorder events.EventRecorder
123
126
informerFactory informers.SharedInformerFactory
124
127
snapshotSharedLister SharedLister
125
128
metricsRecorder * metricsRecorder
@@ -138,6 +141,13 @@ func WithClientSet(clientSet clientset.Interface) Option {
138
141
}
139
142
}
140
143
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
+
141
151
// WithInformerFactory sets informer factory for the scheduling framework.
142
152
func WithInformerFactory (informerFactory informers.SharedInformerFactory ) Option {
143
153
return func (o * frameworkOptions ) {
@@ -214,6 +224,7 @@ func NewFramework(r Registry, plugins *config.Plugins, args []config.PluginConfi
214
224
pluginNameToWeightMap : make (map [string ]int ),
215
225
waitingPods : newWaitingPodsMap (),
216
226
clientSet : options .clientSet ,
227
+ eventRecorder : options .eventRecorder ,
217
228
informerFactory : options .informerFactory ,
218
229
metricsRecorder : options .metricsRecorder ,
219
230
runAllFilters : options .runAllFilters ,
@@ -962,6 +973,11 @@ func (f *framework) ClientSet() clientset.Interface {
962
973
return f .clientSet
963
974
}
964
975
976
+ // EventRecorder returns an event recorder.
977
+ func (f * framework ) EventRecorder () events.EventRecorder {
978
+ return f .eventRecorder
979
+ }
980
+
965
981
// SharedInformerFactory returns a shared informer factory.
966
982
func (f * framework ) SharedInformerFactory () informers.SharedInformerFactory {
967
983
return f .informerFactory
0 commit comments