mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-31 03:45:17 +00:00
fix: propagate registration and error in controllerutils pkg (#8192)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
941c1ae830
commit
7d74eb3ab0
14 changed files with 141 additions and 64 deletions
pkg
controllers
certmanager
cleanup
generic
metrics/policy
policycache
report
validatingadmissionpolicy-generate
webhook
utils/controller
|
@ -50,13 +50,15 @@ func NewController(
|
||||||
namespace string,
|
namespace string,
|
||||||
) controllers.Controller {
|
) controllers.Controller {
|
||||||
queue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), ControllerName)
|
queue := workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), ControllerName)
|
||||||
|
caEnqueue, _, _ := controllerutils.AddDefaultEventHandlers(logger, caInformer.Informer(), queue)
|
||||||
|
tlsEnqueue, _, _ := controllerutils.AddDefaultEventHandlers(logger, tlsInformer.Informer(), queue)
|
||||||
c := controller{
|
c := controller{
|
||||||
renewer: certRenewer,
|
renewer: certRenewer,
|
||||||
caLister: caInformer.Lister(),
|
caLister: caInformer.Lister(),
|
||||||
tlsLister: tlsInformer.Lister(),
|
tlsLister: tlsInformer.Lister(),
|
||||||
queue: queue,
|
queue: queue,
|
||||||
caEnqueue: controllerutils.AddDefaultEventHandlers(logger, caInformer.Informer(), queue),
|
caEnqueue: caEnqueue,
|
||||||
tlsEnqueue: controllerutils.AddDefaultEventHandlers(logger, tlsInformer.Informer(), queue),
|
tlsEnqueue: tlsEnqueue,
|
||||||
caSecretName: caSecretName,
|
caSecretName: caSecretName,
|
||||||
tlsSecretName: tlsSecretName,
|
tlsSecretName: tlsSecretName,
|
||||||
namespace: namespace,
|
namespace: namespace,
|
||||||
|
|
|
@ -85,24 +85,30 @@ func NewController(
|
||||||
cleanupService: cleanupService,
|
cleanupService: cleanupService,
|
||||||
enqueue: baseEnqueueFunc,
|
enqueue: baseEnqueueFunc,
|
||||||
}
|
}
|
||||||
controllerutils.AddEventHandlersT(
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
cpolInformer.Informer(),
|
cpolInformer.Informer(),
|
||||||
controllerutils.AddFuncT(logger, enqueueFunc(logger, "added", "ClusterCleanupPolicy")),
|
controllerutils.AddFuncT(logger, enqueueFunc(logger, "added", "ClusterCleanupPolicy")),
|
||||||
controllerutils.UpdateFuncT(logger, enqueueFunc(logger, "updated", "ClusterCleanupPolicy")),
|
controllerutils.UpdateFuncT(logger, enqueueFunc(logger, "updated", "ClusterCleanupPolicy")),
|
||||||
controllerutils.DeleteFuncT(logger, enqueueFunc(logger, "deleted", "ClusterCleanupPolicy")),
|
controllerutils.DeleteFuncT(logger, enqueueFunc(logger, "deleted", "ClusterCleanupPolicy")),
|
||||||
)
|
); err != nil {
|
||||||
controllerutils.AddEventHandlersT(
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
polInformer.Informer(),
|
polInformer.Informer(),
|
||||||
controllerutils.AddFuncT(logger, enqueueFunc(logger, "added", "CleanupPolicy")),
|
controllerutils.AddFuncT(logger, enqueueFunc(logger, "added", "CleanupPolicy")),
|
||||||
controllerutils.UpdateFuncT(logger, enqueueFunc(logger, "updated", "CleanupPolicy")),
|
controllerutils.UpdateFuncT(logger, enqueueFunc(logger, "updated", "CleanupPolicy")),
|
||||||
controllerutils.DeleteFuncT(logger, enqueueFunc(logger, "deleted", "CleanupPolicy")),
|
controllerutils.DeleteFuncT(logger, enqueueFunc(logger, "deleted", "CleanupPolicy")),
|
||||||
)
|
); err != nil {
|
||||||
controllerutils.AddEventHandlersT(
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
cjInformer.Informer(),
|
cjInformer.Informer(),
|
||||||
func(n *batchv1.CronJob) { c.enqueueCronJob(n) },
|
func(n *batchv1.CronJob) { c.enqueueCronJob(n) },
|
||||||
func(o *batchv1.CronJob, n *batchv1.CronJob) { c.enqueueCronJob(o) },
|
func(o *batchv1.CronJob, n *batchv1.CronJob) { c.enqueueCronJob(o) },
|
||||||
func(n *batchv1.CronJob) { c.enqueueCronJob(n) },
|
func(n *batchv1.CronJob) { c.enqueueCronJob(n) },
|
||||||
)
|
); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,9 @@ func NewController(
|
||||||
name: name,
|
name: name,
|
||||||
callback: callback,
|
callback: callback,
|
||||||
}
|
}
|
||||||
controllerutils.AddDefaultEventHandlers(c.logger, informer.Informer(), c.queue)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(c.logger, informer.Informer(), c.queue); err != nil {
|
||||||
|
logging.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,9 @@ func NewController(logger logr.Logger, objectType string, informer informer, pre
|
||||||
logger: logger.WithValues("type", objectType),
|
logger: logger.WithValues("type", objectType),
|
||||||
predicates: predicates,
|
predicates: predicates,
|
||||||
}
|
}
|
||||||
controllerutils.AddEventHandlersT(informer.Informer(), c.add, c.update, c.delete)
|
if _, err := controllerutils.AddEventHandlersT(informer.Informer(), c.add, c.update, c.delete); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *controller) add(obj metav1.Object) {
|
func (c *controller) add(obj metav1.Object) {
|
||||||
|
|
|
@ -97,8 +97,10 @@ func NewController(
|
||||||
labelSelector: labelSelector,
|
labelSelector: labelSelector,
|
||||||
caSecretName: caSecretName,
|
caSecretName: caSecretName,
|
||||||
}
|
}
|
||||||
controllerutils.AddDefaultEventHandlers(c.logger, vwcInformer.Informer(), queue)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(c.logger, vwcInformer.Informer(), queue); err != nil {
|
||||||
controllerutils.AddEventHandlersT(
|
c.logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
secretInformer.Informer(),
|
secretInformer.Informer(),
|
||||||
func(obj *corev1.Secret) {
|
func(obj *corev1.Secret) {
|
||||||
if obj.GetNamespace() == config.KyvernoNamespace() && obj.GetName() == caSecretName {
|
if obj.GetNamespace() == config.KyvernoNamespace() && obj.GetName() == caSecretName {
|
||||||
|
@ -115,7 +117,9 @@ func NewController(
|
||||||
c.enqueue()
|
c.enqueue()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
); err != nil {
|
||||||
|
c.logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
configuration.OnChanged(c.enqueue)
|
configuration.OnChanged(c.enqueue)
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,8 +52,12 @@ func NewController(
|
||||||
polLister: polInformer.Lister(),
|
polLister: polInformer.Lister(),
|
||||||
waitGroup: waitGroup,
|
waitGroup: waitGroup,
|
||||||
}
|
}
|
||||||
controllerutils.AddEventHandlers(cpolInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy)
|
if _, err := controllerutils.AddEventHandlers(cpolInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy); err != nil {
|
||||||
controllerutils.AddEventHandlers(polInformer.Informer(), c.addNsPolicy, c.updateNsPolicy, c.deleteNsPolicy)
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlers(polInformer.Informer(), c.addNsPolicy, c.updateNsPolicy, c.deleteNsPolicy); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
if c.ruleInfo != nil {
|
if c.ruleInfo != nil {
|
||||||
_, err := meter.RegisterCallback(c.report, c.ruleInfo)
|
_, err := meter.RegisterCallback(c.report, c.ruleInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -53,8 +53,12 @@ func NewController(client dclient.Interface, pcache pcache.Cache, cpolInformer k
|
||||||
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), ControllerName),
|
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), ControllerName),
|
||||||
client: client,
|
client: client,
|
||||||
}
|
}
|
||||||
controllerutils.AddDefaultEventHandlers(logger, cpolInformer.Informer(), c.queue)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, cpolInformer.Informer(), c.queue); err != nil {
|
||||||
controllerutils.AddDefaultEventHandlers(logger, polInformer.Informer(), c.queue)
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, polInformer.Informer(), c.queue); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,18 +62,22 @@ func NewController(
|
||||||
cadmrLister: cadmrInformer.Lister(),
|
cadmrLister: cadmrInformer.Lister(),
|
||||||
queue: queue,
|
queue: queue,
|
||||||
}
|
}
|
||||||
controllerutils.AddEventHandlersT(
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
admrInformer.Informer(),
|
admrInformer.Informer(),
|
||||||
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
||||||
func(old, obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(old))) },
|
func(old, obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(old))) },
|
||||||
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
||||||
)
|
); err != nil {
|
||||||
controllerutils.AddEventHandlersT(
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
cadmrInformer.Informer(),
|
cadmrInformer.Informer(),
|
||||||
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
||||||
func(old, obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(old))) },
|
func(old, obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(old))) },
|
||||||
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
func(obj metav1.Object) { queue.Add(cache.ExplicitKey(reportutils.GetResourceUid(obj))) },
|
||||||
)
|
); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -95,28 +95,40 @@ func NewController(
|
||||||
metadataCache: metadataCache,
|
metadataCache: metadataCache,
|
||||||
chunkSize: chunkSize,
|
chunkSize: chunkSize,
|
||||||
}
|
}
|
||||||
controllerutils.AddDelayedExplicitEventHandlers(logger, polrInformer.Informer(), c.queue, enqueueDelay, keyFunc)
|
if _, _, err := controllerutils.AddDelayedExplicitEventHandlers(logger, polrInformer.Informer(), c.queue, enqueueDelay, keyFunc); err != nil {
|
||||||
controllerutils.AddDelayedExplicitEventHandlers(logger, cpolrInformer.Informer(), c.queue, enqueueDelay, keyFunc)
|
logger.Error(err, "failed to register even handlers")
|
||||||
controllerutils.AddDelayedExplicitEventHandlers(logger, bgscanrInformer.Informer(), c.queue, enqueueDelay, keyFunc)
|
}
|
||||||
controllerutils.AddDelayedExplicitEventHandlers(logger, cbgscanrInformer.Informer(), c.queue, enqueueDelay, keyFunc)
|
if _, _, err := controllerutils.AddDelayedExplicitEventHandlers(logger, cpolrInformer.Informer(), c.queue, enqueueDelay, keyFunc); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, _, err := controllerutils.AddDelayedExplicitEventHandlers(logger, bgscanrInformer.Informer(), c.queue, enqueueDelay, keyFunc); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, _, err := controllerutils.AddDelayedExplicitEventHandlers(logger, cbgscanrInformer.Informer(), c.queue, enqueueDelay, keyFunc); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
enqueueFromAdmr := func(obj metav1.Object) {
|
enqueueFromAdmr := func(obj metav1.Object) {
|
||||||
// no need to consider non aggregated reports
|
// no need to consider non aggregated reports
|
||||||
if controllerutils.HasLabel(obj, reportutils.LabelAggregatedReport) {
|
if controllerutils.HasLabel(obj, reportutils.LabelAggregatedReport) {
|
||||||
c.queue.AddAfter(keyFunc(obj), enqueueDelay)
|
c.queue.AddAfter(keyFunc(obj), enqueueDelay)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
controllerutils.AddEventHandlersT(
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
admrInformer.Informer(),
|
admrInformer.Informer(),
|
||||||
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
||||||
func(_, obj metav1.Object) { enqueueFromAdmr(obj) },
|
func(_, obj metav1.Object) { enqueueFromAdmr(obj) },
|
||||||
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
||||||
)
|
); err != nil {
|
||||||
controllerutils.AddEventHandlersT(
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
cadmrInformer.Informer(),
|
cadmrInformer.Informer(),
|
||||||
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
||||||
func(_, obj metav1.Object) { enqueueFromAdmr(obj) },
|
func(_, obj metav1.Object) { enqueueFromAdmr(obj) },
|
||||||
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
func(obj metav1.Object) { enqueueFromAdmr(obj) },
|
||||||
)
|
); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -104,10 +104,18 @@ func NewController(
|
||||||
eventGen: eventGen,
|
eventGen: eventGen,
|
||||||
policyReports: policyReports,
|
policyReports: policyReports,
|
||||||
}
|
}
|
||||||
controllerutils.AddDefaultEventHandlers(logger, bgscanr.Informer(), queue)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, bgscanr.Informer(), queue); err != nil {
|
||||||
controllerutils.AddDefaultEventHandlers(logger, cbgscanr.Informer(), queue)
|
logger.Error(err, "failed to register even handlers")
|
||||||
controllerutils.AddEventHandlersT(polInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy)
|
}
|
||||||
controllerutils.AddEventHandlersT(cpolInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, cbgscanr.Informer(), queue); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(polInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(cpolInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
c.metadataCache.AddEventHandler(func(eventType resource.EventType, uid types.UID, _ schema.GroupVersionKind, res resource.Resource) {
|
c.metadataCache.AddEventHandler(func(eventType resource.EventType, uid types.UID, _ schema.GroupVersionKind, res resource.Resource) {
|
||||||
// if it's a deletion, nothing to do
|
// if it's a deletion, nothing to do
|
||||||
if eventType == resource.Deleted {
|
if eventType == resource.Deleted {
|
||||||
|
|
|
@ -97,8 +97,12 @@ func NewController(
|
||||||
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), ControllerName),
|
queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), ControllerName),
|
||||||
dynamicWatchers: map[schema.GroupVersionResource]*watcher{},
|
dynamicWatchers: map[schema.GroupVersionResource]*watcher{},
|
||||||
}
|
}
|
||||||
controllerutils.AddDefaultEventHandlers(logger, polInformer.Informer(), c.queue)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, polInformer.Informer(), c.queue); err != nil {
|
||||||
controllerutils.AddDefaultEventHandlers(logger, cpolInformer.Informer(), c.queue)
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, cpolInformer.Informer(), c.queue); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,13 +68,19 @@ func NewController(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up an event handler for when Kyverno policies change
|
// Set up an event handler for when Kyverno policies change
|
||||||
controllerutils.AddEventHandlersT(cpolInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy)
|
if _, err := controllerutils.AddEventHandlersT(cpolInformer.Informer(), c.addPolicy, c.updatePolicy, c.deletePolicy); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
|
||||||
// Set up an event handler for when validating admission policies change
|
// Set up an event handler for when validating admission policies change
|
||||||
controllerutils.AddEventHandlersT(vapInformer.Informer(), c.addVAP, c.updateVAP, c.deleteVAP)
|
if _, err := controllerutils.AddEventHandlersT(vapInformer.Informer(), c.addVAP, c.updateVAP, c.deleteVAP); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
|
||||||
// Set up an event handler for when validating admission policy bindings change
|
// Set up an event handler for when validating admission policy bindings change
|
||||||
controllerutils.AddEventHandlersT(vapbindingInformer.Informer(), c.addVAPbinding, c.updateVAPbinding, c.deleteVAPbinding)
|
if _, err := controllerutils.AddEventHandlersT(vapbindingInformer.Informer(), c.addVAPbinding, c.updateVAPbinding, c.deleteVAPbinding); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
|
|
@ -156,9 +156,13 @@ func NewController(
|
||||||
config.ValidatingWebhookConfigurationName: sets.New[string](),
|
config.ValidatingWebhookConfigurationName: sets.New[string](),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
controllerutils.AddDefaultEventHandlers(logger, mwcInformer.Informer(), queue)
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, mwcInformer.Informer(), queue); err != nil {
|
||||||
controllerutils.AddDefaultEventHandlers(logger, vwcInformer.Informer(), queue)
|
logger.Error(err, "failed to register even handlers")
|
||||||
controllerutils.AddEventHandlersT(
|
}
|
||||||
|
if _, _, err := controllerutils.AddDefaultEventHandlers(logger, vwcInformer.Informer(), queue); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlersT(
|
||||||
secretInformer.Informer(),
|
secretInformer.Informer(),
|
||||||
func(obj *corev1.Secret) {
|
func(obj *corev1.Secret) {
|
||||||
if obj.GetNamespace() == config.KyvernoNamespace() && obj.GetName() == caSecretName {
|
if obj.GetNamespace() == config.KyvernoNamespace() && obj.GetName() == caSecretName {
|
||||||
|
@ -175,19 +179,25 @@ func NewController(
|
||||||
c.enqueueAll()
|
c.enqueueAll()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
); err != nil {
|
||||||
controllerutils.AddEventHandlers(
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlers(
|
||||||
cpolInformer.Informer(),
|
cpolInformer.Informer(),
|
||||||
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
||||||
func(interface{}, interface{}) { c.enqueueResourceWebhooks(0) },
|
func(interface{}, interface{}) { c.enqueueResourceWebhooks(0) },
|
||||||
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
||||||
)
|
); err != nil {
|
||||||
controllerutils.AddEventHandlers(
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
|
if _, err := controllerutils.AddEventHandlers(
|
||||||
polInformer.Informer(),
|
polInformer.Informer(),
|
||||||
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
||||||
func(interface{}, interface{}) { c.enqueueResourceWebhooks(0) },
|
func(interface{}, interface{}) { c.enqueueResourceWebhooks(0) },
|
||||||
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
func(interface{}) { c.enqueueResourceWebhooks(0) },
|
||||||
)
|
); err != nil {
|
||||||
|
logger.Error(err, "failed to register even handlers")
|
||||||
|
}
|
||||||
configuration.OnChanged(c.enqueueAll)
|
configuration.OnChanged(c.enqueueAll)
|
||||||
return &c
|
return &c
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,8 +24,8 @@ type (
|
||||||
EnqueueFuncT[T any] func(T) error
|
EnqueueFuncT[T any] func(T) error
|
||||||
)
|
)
|
||||||
|
|
||||||
func AddEventHandlers(informer cache.SharedInformer, a addFunc, u updateFunc, d deleteFunc) {
|
func AddEventHandlers(informer cache.SharedInformer, a addFunc, u updateFunc, d deleteFunc) (cache.ResourceEventHandlerRegistration, error) {
|
||||||
_, _ = informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
|
return informer.AddEventHandler(cache.ResourceEventHandlerFuncs{
|
||||||
AddFunc: a,
|
AddFunc: a,
|
||||||
UpdateFunc: u,
|
UpdateFunc: u,
|
||||||
DeleteFunc: func(obj interface{}) {
|
DeleteFunc: func(obj interface{}) {
|
||||||
|
@ -34,8 +34,8 @@ func AddEventHandlers(informer cache.SharedInformer, a addFunc, u updateFunc, d
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddEventHandlersT[T any](informer cache.SharedInformer, a addFuncT[T], u updateFuncT[T], d deleteFuncT[T]) {
|
func AddEventHandlersT[T any](informer cache.SharedInformer, a addFuncT[T], u updateFuncT[T], d deleteFuncT[T]) (cache.ResourceEventHandlerRegistration, error) {
|
||||||
AddEventHandlers(
|
return AddEventHandlers(
|
||||||
informer,
|
informer,
|
||||||
func(obj interface{}) { a(obj.(T)) },
|
func(obj interface{}) { a(obj.(T)) },
|
||||||
func(old, obj interface{}) { u(old.(T), obj.(T)) },
|
func(old, obj interface{}) { u(old.(T), obj.(T)) },
|
||||||
|
@ -43,41 +43,50 @@ func AddEventHandlersT[T any](informer cache.SharedInformer, a addFuncT[T], u up
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddKeyedEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, parseKey keyFunc) EnqueueFunc {
|
func AddKeyedEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, parseKey keyFunc) (EnqueueFunc, cache.ResourceEventHandlerRegistration, error) {
|
||||||
enqueueFunc := LogError(logger, Parse(parseKey, Queue(queue)))
|
enqueueFunc := LogError(logger, Parse(parseKey, Queue(queue)))
|
||||||
AddEventHandlers(informer, AddFunc(logger, enqueueFunc), UpdateFunc(logger, enqueueFunc), DeleteFunc(logger, enqueueFunc))
|
if registration, err := AddEventHandlers(informer, AddFunc(logger, enqueueFunc), UpdateFunc(logger, enqueueFunc), DeleteFunc(logger, enqueueFunc)); err != nil {
|
||||||
return enqueueFunc
|
return nil, nil, err
|
||||||
|
} else {
|
||||||
|
return enqueueFunc, registration, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddKeyedEventHandlersT[K metav1.Object](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, parseKey keyFuncT[K, interface{}]) EnqueueFuncT[K] {
|
func AddKeyedEventHandlersT[K metav1.Object](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, parseKey keyFuncT[K, interface{}]) (EnqueueFuncT[K], cache.ResourceEventHandlerRegistration, error) {
|
||||||
enqueueFunc := LogError(logger, Parse(parseKey, Queue(queue)))
|
enqueueFunc := LogError(logger, Parse(parseKey, Queue(queue)))
|
||||||
AddEventHandlersT(informer, AddFuncT(logger, enqueueFunc), UpdateFuncT(logger, enqueueFunc), DeleteFuncT(logger, enqueueFunc))
|
if registration, err := AddEventHandlersT(informer, AddFuncT(logger, enqueueFunc), UpdateFuncT(logger, enqueueFunc), DeleteFuncT(logger, enqueueFunc)); err != nil {
|
||||||
return enqueueFunc
|
return nil, nil, err
|
||||||
|
} else {
|
||||||
|
return enqueueFunc, registration, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddDelayedKeyedEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, delay time.Duration, parseKey keyFunc) EnqueueFunc {
|
func AddDelayedKeyedEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, delay time.Duration, parseKey keyFunc) (EnqueueFunc, cache.ResourceEventHandlerRegistration, error) {
|
||||||
enqueueFunc := LogError(logger, Parse(parseKey, QueueAfter(queue, delay)))
|
enqueueFunc := LogError(logger, Parse(parseKey, QueueAfter(queue, delay)))
|
||||||
AddEventHandlers(informer, AddFunc(logger, enqueueFunc), UpdateFunc(logger, enqueueFunc), DeleteFunc(logger, enqueueFunc))
|
if registration, err := AddEventHandlers(informer, AddFunc(logger, enqueueFunc), UpdateFunc(logger, enqueueFunc), DeleteFunc(logger, enqueueFunc)); err != nil {
|
||||||
return enqueueFunc
|
return nil, nil, err
|
||||||
|
} else {
|
||||||
|
return enqueueFunc, registration, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddDefaultEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface) EnqueueFunc {
|
func AddDefaultEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface) (EnqueueFunc, cache.ResourceEventHandlerRegistration, error) {
|
||||||
return AddKeyedEventHandlers(logger, informer, queue, MetaNamespaceKey)
|
return AddKeyedEventHandlers(logger, informer, queue, MetaNamespaceKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddDefaultEventHandlersT[K metav1.Object](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface) EnqueueFuncT[K] {
|
func AddDefaultEventHandlersT[K metav1.Object](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface) (EnqueueFuncT[K], cache.ResourceEventHandlerRegistration, error) {
|
||||||
return AddKeyedEventHandlersT(logger, informer, queue, MetaNamespaceKeyT[K])
|
return AddKeyedEventHandlersT(logger, informer, queue, MetaNamespaceKeyT[K])
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddDelayedDefaultEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, delay time.Duration) EnqueueFunc {
|
func AddDelayedDefaultEventHandlers(logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, delay time.Duration) (EnqueueFunc, cache.ResourceEventHandlerRegistration, error) {
|
||||||
return AddDelayedKeyedEventHandlers(logger, informer, queue, delay, MetaNamespaceKey)
|
return AddDelayedKeyedEventHandlers(logger, informer, queue, delay, MetaNamespaceKey)
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddExplicitEventHandlers[K any](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, parseKey func(K) cache.ExplicitKey) EnqueueFunc {
|
func AddExplicitEventHandlers[K any](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, parseKey func(K) cache.ExplicitKey) (EnqueueFunc, cache.ResourceEventHandlerRegistration, error) {
|
||||||
return AddKeyedEventHandlers(logger, informer, queue, ExplicitKey(parseKey))
|
return AddKeyedEventHandlers(logger, informer, queue, ExplicitKey(parseKey))
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddDelayedExplicitEventHandlers[K any](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, delay time.Duration, parseKey func(K) cache.ExplicitKey) EnqueueFunc {
|
func AddDelayedExplicitEventHandlers[K any](logger logr.Logger, informer cache.SharedInformer, queue workqueue.RateLimitingInterface, delay time.Duration, parseKey func(K) cache.ExplicitKey) (EnqueueFunc, cache.ResourceEventHandlerRegistration, error) {
|
||||||
return AddDelayedKeyedEventHandlers(logger, informer, queue, delay, ExplicitKey(parseKey))
|
return AddDelayedKeyedEventHandlers(logger, informer, queue, delay, ExplicitKey(parseKey))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue