in pkg/controller/podgroup.go [63:90]
func NewPodGroupController(client kubernetes.Interface,
pgInformer schedinformer.PodGroupInformer,
podInformer coreinformer.PodInformer,
pgClient schedclientset.Interface) *PodGroupController {
broadcaster := record.NewBroadcaster()
broadcaster.StartRecordingToSink(&corev1.EventSinkImpl{Interface: client.CoreV1().Events(v1.NamespaceAll)})
ctrl := &PodGroupController{
eventRecorder: broadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "PodGroupController"}),
pgQueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "PodGroup"),
}
pgInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: ctrl.pgAdded,
UpdateFunc: ctrl.pgUpdated,
})
podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: ctrl.podAdded,
UpdateFunc: ctrl.podUpdated,
})
ctrl.pgLister = pgInformer.Lister()
ctrl.podLister = podInformer.Lister()
ctrl.pgListerSynced = pgInformer.Informer().HasSynced
ctrl.podListerSynced = podInformer.Informer().HasSynced
ctrl.pgClient = pgClient
return ctrl
}