func NewScheduledJobController(kubeClient *client.Client) *ScheduledJobController { eventBroadcaster := record.NewBroadcaster() eventBroadcaster.StartLogging(glog.Infof) // TODO: remove the wrapper when every clients have moved to use the clientset. eventBroadcaster.StartRecordingToSink(kubeClient.Events("")) if kubeClient != nil && kubeClient.GetRateLimiter() != nil { metrics.RegisterMetricAndTrackRateLimiterUsage("scheduledjob_controller", kubeClient.GetRateLimiter()) } jm := &ScheduledJobController{ kubeClient: kubeClient, jobControl: realJobControl{KubeClient: kubeClient}, sjControl: &realSJControl{KubeClient: kubeClient}, recorder: eventBroadcaster.NewRecorder(api.EventSource{Component: "scheduled-job-controller"}), } return jm }