layer1: centralize namespace watcher handlers
This commit is contained in:
@@ -48,41 +48,19 @@ func StartNSWatcher(
|
||||
_, _ = nsInformer.AddEventHandler(k8sCache.ResourceEventHandlerFuncs{
|
||||
AddFunc: func(obj interface{}) {
|
||||
nsObj, ok := obj.(*corev1.Namespace)
|
||||
if !ok || nsObj.Name == "" {
|
||||
return
|
||||
}
|
||||
if _, _, err := utils.DispatchNamespaceAdd(ctx, nsManager, nsObj, utils.NamespaceSourceWatcher, time.Now().UTC()); err != nil {
|
||||
logger.Error("router.NSWatcher: DispatchAdd failed",
|
||||
zap.String("namespace", nsObj.Name), zap.Error(err))
|
||||
if ok {
|
||||
utils.HandleWatcherNamespaceAdd(ctx, logger, "router.NSWatcher", nsManager, nsObj)
|
||||
}
|
||||
},
|
||||
UpdateFunc: func(oldObj, newObj interface{}) {
|
||||
nsObj, ok := newObj.(*corev1.Namespace)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
oldNSObj, _ := oldObj.(*corev1.Namespace)
|
||||
if utils.NamespaceBecameUnmanaged(oldNSObj, nsObj) {
|
||||
_, _ = utils.RecordNamespaceRemoval(nsManager, nsObj, utils.NamespaceSourceWatcher, time.Now().UTC())
|
||||
logger.Info("router.NSWatcher: namespace removed from manager state; runtime registrations kept",
|
||||
zap.String("namespace", nsObj.Name))
|
||||
return
|
||||
}
|
||||
if !utils.IsManagedNamespace(nsObj.Labels) {
|
||||
return
|
||||
}
|
||||
if _, _, err := utils.DispatchNamespaceResync(ctx, nsManager, nsObj, utils.NamespaceSourceWatcher, time.Now().UTC()); err != nil {
|
||||
logger.Error("router.NSWatcher: DispatchResync failed",
|
||||
zap.String("namespace", nsObj.Name), zap.Error(err))
|
||||
nsObj, ok := newObj.(*corev1.Namespace)
|
||||
if ok {
|
||||
utils.HandleWatcherNamespaceUpdate(ctx, logger, "router.NSWatcher", nsManager, oldNSObj, nsObj)
|
||||
}
|
||||
},
|
||||
DeleteFunc: func(obj interface{}) {
|
||||
record, ok := utils.RecordNamespaceRemoval(nsManager, obj, utils.NamespaceSourceWatcher, time.Now().UTC())
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
logger.Info("router.NSWatcher: namespace deleted from manager state; runtime registrations kept",
|
||||
zap.String("namespace", record.Name))
|
||||
utils.HandleWatcherNamespaceDelete(logger, "router.NSWatcher", nsManager, obj)
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user