layer1: formalize namespace removal strategy

This commit is contained in:
Naeel
2026-04-26 10:48:42 +03:00
parent 340b9cae84
commit 0755319fac
8 changed files with 75 additions and 9 deletions
+16 -5
View File
@@ -152,9 +152,7 @@ func HandleWatcherNamespaceUpdate(ctx context.Context, logger *zap.Logger, compo
return
}
if NamespaceBecameUnmanaged(oldNamespace, newNamespace) {
_, _ = RecordNamespaceRemoval(manager, newNamespace, NamespaceSourceWatcher, time.Now().UTC())
logger.Info(component+": namespace removed from manager state; runtime registrations kept",
zap.String("namespace", newNamespace.Name))
HandleWatcherNamespaceRemoval(ctx, logger, component, manager, newNamespace, NamespaceRemovalStrategyTrackOnly)
return
}
if !IsManagedNamespace(newNamespace.Labels) {
@@ -165,12 +163,25 @@ func HandleWatcherNamespaceUpdate(ctx context.Context, logger *zap.Logger, compo
}
}
func HandleWatcherNamespaceDelete(logger *zap.Logger, component string, manager NamespaceManager, obj interface{}) {
func HandleWatcherNamespaceDelete(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, obj interface{}, strategy NamespaceRemovalStrategy) {
HandleWatcherNamespaceRemoval(ctx, logger, component, manager, obj, strategy)
}
func HandleWatcherNamespaceRemoval(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, obj interface{}, strategy NamespaceRemovalStrategy) {
record, ok := RecordNamespaceRemoval(manager, obj, NamespaceSourceWatcher, time.Now().UTC())
if !ok {
return
}
logger.Info(component+": namespace deleted from manager state; runtime registrations kept",
if strategy == NamespaceRemovalStrategyDispatchRemove {
if _, _, err := manager.DispatchRemove(ctx, record.Name); err != nil {
logger.Error(component+": DispatchRemove failed", zap.String("namespace", record.Name), zap.Error(err))
return
}
logger.Info(component+": namespace removal dispatched through subscribers",
zap.String("namespace", record.Name))
return
}
logger.Info(component+": namespace removed from manager state; runtime registrations kept",
zap.String("namespace", record.Name))
}