@@ -83,26 +83,27 @@ type ShutdownFunc func()
83
83
// StartScheduler configures and starts a scheduler given a handle to the clientSet interface
84
84
// and event broadcaster. It returns the running scheduler and podInformer. Background goroutines
85
85
// will keep running until the context is canceled.
86
- func StartScheduler (ctx context.Context ,clientSet clientset.Interface ,kubeConfig * restclient.Config ,cfg * kubeschedulerconfig.KubeSchedulerConfiguration ,outOfTreePluginRegistry frameworkruntime.Registry ) (* scheduler.Scheduler , informers.SharedInformerFactory ) {
86
+ func StartScheduler (tCtx ktesting.TContext ,cfg * kubeschedulerconfig.KubeSchedulerConfiguration ,outOfTreePluginRegistry frameworkruntime.Registry ) (* scheduler.Scheduler , informers.SharedInformerFactory ) {
87
+ clientSet := tCtx .Client ()
87
88
informerFactory := scheduler .NewInformerFactory (clientSet ,0 )
88
89
evtBroadcaster := events .NewBroadcaster (& events.EventSinkImpl {
89
90
Interface :clientSet .EventsV1 ()})
90
91
go func () {
91
- <- ctx .Done ()
92
+ <- tCtx .Done ()
92
93
evtBroadcaster .Shutdown ()
93
94
}()
94
95
95
- evtBroadcaster .StartRecordingToSink (ctx .Done ())
96
+ evtBroadcaster .StartRecordingToSink (tCtx .Done ())
96
97
97
- logger := klog . FromContext ( ctx )
98
+ logger := tCtx . Logger ( )
98
99
99
100
sched ,err := scheduler .New (
100
- ctx ,
101
+ tCtx ,
101
102
clientSet ,
102
103
informerFactory ,
103
104
nil ,
104
105
profile .NewRecorderFactory (evtBroadcaster ),
105
- scheduler .WithKubeConfig (kubeConfig ),
106
+ scheduler .WithKubeConfig (tCtx . RESTConfig () ),
106
107
scheduler .WithProfiles (cfg .Profiles ... ),
107
108
scheduler .WithPercentageOfNodesToScore (cfg .PercentageOfNodesToScore ),
108
109
scheduler .WithPodMaxBackoffSeconds (cfg .PodMaxBackoffSeconds ),
@@ -111,19 +112,14 @@ func StartScheduler(ctx context.Context, clientSet clientset.Interface, kubeConf
111
112
scheduler .WithParallelism (cfg .Parallelism ),
112
113
scheduler .WithFrameworkOutOfTreeRegistry (outOfTreePluginRegistry ),
113
114
)
114
- if err != nil {
115
- logger .Error (err ,"Error creating scheduler" )
116
- klog .FlushAndExit (klog .ExitFlushTimeout ,1 )
117
- }
115
+ tCtx .ExpectNoError (err ,"creating scheduler" )
118
116
119
- informerFactory .Start (ctx .Done ())
120
- informerFactory .WaitForCacheSync (ctx .Done ())
121
- if err = sched .WaitForHandlersSync (ctx );err != nil {
122
- logger .Error (err ,"Failed waiting for handlers to sync" )
123
- klog .FlushAndExit (klog .ExitFlushTimeout ,1 )
124
- }
117
+ informerFactory .Start (tCtx .Done ())
118
+ informerFactory .WaitForCacheSync (tCtx .Done ())
119
+ err = sched .WaitForHandlersSync (tCtx )
120
+ tCtx .ExpectNoError (err ,"waiting for handlers to sync" )
125
121
logger .V (3 ).Info ("Handlers synced" )
126
- go sched .Run (ctx )
122
+ go sched .Run (tCtx )
127
123
128
124
return sched ,informerFactory
129
125
}