layer1: formalize namespace removal strategy
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user