func NewController()

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
}