layer1: centralize namespace watcher handlers
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"go.uber.org/zap"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
)
|
||||
|
||||
@@ -137,6 +138,42 @@ func RecordNamespaceRemoval(manager NamespaceManager, obj interface{}, source Na
|
||||
return record, true
|
||||
}
|
||||
|
||||
func HandleWatcherNamespaceAdd(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, namespace *corev1.Namespace) {
|
||||
if namespace == nil || namespace.Name == "" {
|
||||
return
|
||||
}
|
||||
if _, _, err := DispatchNamespaceAdd(ctx, manager, namespace, NamespaceSourceWatcher, time.Now().UTC()); err != nil {
|
||||
logger.Error(component+": DispatchAdd failed", zap.String("namespace", namespace.Name), zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
func HandleWatcherNamespaceUpdate(ctx context.Context, logger *zap.Logger, component string, manager NamespaceManager, oldNamespace *corev1.Namespace, newNamespace *corev1.Namespace) {
|
||||
if newNamespace == nil {
|
||||
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))
|
||||
return
|
||||
}
|
||||
if !IsManagedNamespace(newNamespace.Labels) {
|
||||
return
|
||||
}
|
||||
if _, _, err := DispatchNamespaceResync(ctx, manager, newNamespace, NamespaceSourceWatcher, time.Now().UTC()); err != nil {
|
||||
logger.Error(component+": DispatchResync failed", zap.String("namespace", newNamespace.Name), zap.Error(err))
|
||||
}
|
||||
}
|
||||
|
||||
func HandleWatcherNamespaceDelete(logger *zap.Logger, component string, manager NamespaceManager, obj interface{}) {
|
||||
record, ok := RecordNamespaceRemoval(manager, obj, NamespaceSourceWatcher, time.Now().UTC())
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
logger.Info(component+": namespace deleted from manager state; runtime registrations kept",
|
||||
zap.String("namespace", record.Name))
|
||||
}
|
||||
|
||||
func (m *inMemoryNamespaceManager) Subscribe(subscriber NamespaceSubscriber) {
|
||||
m.mu.Lock()
|
||||
defer m.mu.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user