diff --git a/services/k8s.go b/services/k8s.go index 1ccb9db3188ec197f8c9532467c8b0138d3f5fa4..7b62c6efa32956d94a9776c24b579ce5777d9eef 100644 --- a/services/k8s.go +++ b/services/k8s.go @@ -162,15 +162,10 @@ var kubeScheduler = &Unit{ u.Logger.Info("preparing scheduler informers") // Setup scheduler dependencies broadcaster := events.NewEventBroadcasterAdapter(eventsClient) - broadcaster.StartRecordingToSink(ctx.Done()) informers := scheduler.NewInformerFactory(client, 0) - informers.Start(ctx.Done()) dynInformers := dynamicinformer.NewFilteredDynamicSharedInformerFactory( dynamic.NewForConfigOrDie(kc), 0, core.NamespaceAll, nil, ) - dynInformers.Start(ctx.Done()) - informers.WaitForCacheSync(ctx.Done()) - dynInformers.WaitForCacheSync(ctx.Done()) // Start the scheduler itself u.Logger.Info("informers are ready, preparing the scheduler") sched, err := scheduler.New(client, informers, dynInformers, broadcaster.NewRecorder, ctx.Done(), @@ -180,6 +175,12 @@ var kubeScheduler = &Unit{ return err } u.Logger.Info("starting the scheduler") + broadcaster.StartRecordingToSink(ctx.Done()) + defer broadcaster.Shutdown() + informers.Start(ctx.Done()) + dynInformers.Start(ctx.Done()) + informers.WaitForCacheSync(ctx.Done()) + dynInformers.WaitForCacheSync(ctx.Done()) sched.Run(ctx) return nil },