layer1: add managed watcher config

This commit is contained in:
Naeel
2026-04-26 11:02:09 +03:00
parent b9236698f3
commit d2ff55f9e0
7 changed files with 89 additions and 12 deletions
+11 -7
View File
@@ -110,16 +110,20 @@ func NewWatcherNamespaceManager(ctx context.Context, namespaces []string, source
return manager, err
}
func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, component string, namespaces []string, removalStrategy NamespaceRemovalStrategy, subscriber NamespaceSubscriber) (NamespaceManager, k8sCache.ResourceEventHandlerFuncs, error) {
manager, err := NewWatcherNamespaceManager(ctx, namespaces, NamespaceSourceEnv, time.Now().UTC(), subscriber)
handlers := NewNamespaceWatcherEventHandlers(ctx, logger, component, manager, removalStrategy)
LogNamespaceManagerSummary(logger, component+": prepared namespace manager", manager.Summary())
func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, config ManagedNamespaceWatcherConfig) (NamespaceManager, k8sCache.ResourceEventHandlerFuncs, error) {
strategy := config.RemovalStrategy
if strategy == "" {
strategy = NamespaceRemovalStrategyTrackOnly
}
manager, err := NewWatcherNamespaceManager(ctx, config.Namespaces, NamespaceSourceEnv, time.Now().UTC(), config.Subscriber)
handlers := NewNamespaceWatcherEventHandlers(ctx, logger, config.Component, manager, strategy)
LogNamespaceManagerSummary(logger, config.Component+": prepared namespace manager", manager.Summary())
return manager, handlers, err
}
func RunManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, component string, kubeClient kubernetes.Interface, mgr managerPkg.Interface, namespaces []string, removalStrategy NamespaceRemovalStrategy, subscriber NamespaceSubscriber) (NamespaceManager, error) {
manager, handlers, err := PrepareManagedNamespaceWatcher(ctx, logger, component, namespaces, removalStrategy, subscriber)
StartManagedNamespaceWatcher(ctx, logger, component, kubeClient, mgr, handlers)
func RunManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, kubeClient kubernetes.Interface, mgr managerPkg.Interface, config ManagedNamespaceWatcherConfig) (NamespaceManager, error) {
manager, handlers, err := PrepareManagedNamespaceWatcher(ctx, logger, config)
StartManagedNamespaceWatcher(ctx, logger, config.Component, kubeClient, mgr, handlers)
return manager, err
}