layer1: track namespace removals in manager
This commit is contained in:
@@ -58,9 +58,20 @@ func StartNSWatcher(
|
||||
zap.String("namespace", nsObj.Name), zap.Error(err))
|
||||
}
|
||||
},
|
||||
UpdateFunc: func(_, newObj interface{}) {
|
||||
UpdateFunc: func(oldObj, newObj interface{}) {
|
||||
nsObj, ok := newObj.(*corev1.Namespace)
|
||||
if !ok || !utils.IsManagedNamespace(nsObj.Labels) {
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
oldNSObj, _ := oldObj.(*corev1.Namespace)
|
||||
if oldNSObj != nil && utils.IsManagedNamespace(oldNSObj.Labels) && !utils.IsManagedNamespace(nsObj.Labels) {
|
||||
event := utils.NamespaceEventFromNamespace(utils.NamespaceEventRemove, nsObj, utils.NamespaceSourceWatcher, time.Now().UTC())
|
||||
nsManager.Upsert(event)
|
||||
logger.Info("router.NSWatcher: namespace removed from manager state; runtime registrations kept",
|
||||
zap.String("namespace", nsObj.Name))
|
||||
return
|
||||
}
|
||||
if !utils.IsManagedNamespace(nsObj.Labels) {
|
||||
return
|
||||
}
|
||||
nsManager.Upsert(utils.NamespaceEventFromNamespace(utils.NamespaceEventUpdate, nsObj, utils.NamespaceSourceWatcher, time.Now().UTC()))
|
||||
@@ -69,6 +80,15 @@ func StartNSWatcher(
|
||||
zap.String("namespace", nsObj.Name), zap.Error(err))
|
||||
}
|
||||
},
|
||||
DeleteFunc: func(obj interface{}) {
|
||||
event := utils.NamespaceEventFromObject(utils.NamespaceEventRemove, obj, utils.NamespaceSourceWatcher, time.Now().UTC())
|
||||
if event.Name == "" {
|
||||
return
|
||||
}
|
||||
nsManager.Upsert(event)
|
||||
logger.Info("router.NSWatcher: namespace deleted from manager state; runtime registrations kept",
|
||||
zap.String("namespace", event.Name))
|
||||
},
|
||||
})
|
||||
|
||||
mgr.Add(ctx, func(ctx context.Context) {
|
||||
|
||||
Reference in New Issue
Block a user