in cmd/controller/app/server.go [43:97]
func Run(s *ServerRunOptions) error {
config := ctrl.GetConfigOrDie()
config.QPS = float32(s.ApiServerQPS)
config.Burst = s.ApiServerBurst
// Controller Runtime Controllers
ctrl.SetLogger(klogr.New())
mgr, err := ctrl.NewManager(ctrl.GetConfigOrDie(), ctrl.Options{
Scheme: scheme,
Metrics: metricsserver.Options{
BindAddress: s.MetricsAddr,
},
HealthProbeBindAddress: s.ProbeAddr,
LeaderElection: s.EnableLeaderElection,
LeaderElectionID: "sched-plugins-controllers",
LeaderElectionNamespace: "kube-system",
})
if err != nil {
setupLog.Error(err, "unable to start manager")
return err
}
if err = (&controllers.PodGroupReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
Workers: s.Workers,
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "PodGroup")
return err
}
if err = (&controllers.ElasticQuotaReconciler{
Client: mgr.GetClient(),
Scheme: mgr.GetScheme(),
Workers: s.Workers,
}).SetupWithManager(mgr); err != nil {
setupLog.Error(err, "unable to create controller", "controller", "ElasticQuota")
return err
}
if err := mgr.AddHealthzCheck("healthz", healthz.Ping); err != nil {
setupLog.Error(err, "unable to set up health check")
return err
}
if err := mgr.AddReadyzCheck("readyz", healthz.Ping); err != nil {
setupLog.Error(err, "unable to set up ready check")
return err
}
if err := mgr.Start(ctrl.SetupSignalHandler()); err != nil {
setupLog.Error(err, "unable to start manager")
return err
}
return nil
}