in pkg/authority/k8s/controller.go [54:105]
func NewController(
clientSet clientSet.Interface,
rootNamespace string,
authenticationHandler authentication.Handler,
authorizationHandler authorization.Handler,
acInformer informerV1beta1.AuthenticationPolicyInformer,
apInformer informerV1beta1.AuthorizationPolicyInformer,
) *Controller {
controller := &Controller{
dubboClientSet: clientSet,
rootNamespace: rootNamespace,
authenticationSynced: acInformer.Informer().HasSynced,
authorizationSynced: apInformer.Informer().HasSynced,
authenticationHandler: authenticationHandler,
authorizationHandler: authorizationHandler,
}
logger.Sugar().Info("Setting up event handlers")
// Set up an event handler for when Foo resources change
_, err := acInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: func(obj interface{}) {
controller.handleEvent(obj, AddNotification)
},
UpdateFunc: func(oldObj, newObj interface{}) {
controller.handleEvent(newObj, UpdateNotification)
},
DeleteFunc: func(obj interface{}) {
controller.handleEvent(obj, DeleteNotification)
},
})
if err != nil {
return nil
}
_, err = apInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: func(obj interface{}) {
controller.handleEvent(obj, AddNotification)
},
UpdateFunc: func(oldObj, newObj interface{}) {
controller.handleEvent(newObj, UpdateNotification)
},
DeleteFunc: func(obj interface{}) {
controller.handleEvent(obj, DeleteNotification)
},
})
if err != nil {
return nil
}
return controller
}