layer1: add default watcher config helper
This commit is contained in:
@@ -110,6 +110,15 @@ func NewWatcherNamespaceManager(ctx context.Context, namespaces []string, source
|
||||
return manager, err
|
||||
}
|
||||
|
||||
func NewDefaultManagedNamespaceWatcherConfig(component string, subscriber NamespaceSubscriber) ManagedNamespaceWatcherConfig {
|
||||
return ManagedNamespaceWatcherConfig{
|
||||
Component: component,
|
||||
Namespaces: DefaultNSResolver().Snapshot(),
|
||||
RemovalStrategy: NamespaceRemovalStrategyTrackOnly,
|
||||
Subscriber: subscriber,
|
||||
}
|
||||
}
|
||||
|
||||
func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, config ManagedNamespaceWatcherConfig) (NamespaceManager, k8sCache.ResourceEventHandlerFuncs, error) {
|
||||
strategy := config.RemovalStrategy
|
||||
if strategy == "" {
|
||||
|
||||
@@ -485,6 +485,30 @@ func TestRunManagedNamespaceWatcher(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewDefaultManagedNamespaceWatcherConfig(t *testing.T) {
|
||||
resolver := DefaultNSResolver()
|
||||
original := resolver.FissionResourceNS
|
||||
resolver.FissionResourceNS = map[string]string{"tenant-a": "tenant-a"}
|
||||
defer func() {
|
||||
resolver.FissionResourceNS = original
|
||||
}()
|
||||
|
||||
router := &testNamespaceSubscriber{name: "router"}
|
||||
config := NewDefaultManagedNamespaceWatcherConfig("router.NSWatcher", router)
|
||||
if config.Component != "router.NSWatcher" {
|
||||
t.Fatalf("expected component name to be preserved")
|
||||
}
|
||||
if config.RemovalStrategy != NamespaceRemovalStrategyTrackOnly {
|
||||
t.Fatalf("expected default removal strategy track-only")
|
||||
}
|
||||
if !reflect.DeepEqual([]string{"tenant-a"}, config.Namespaces) {
|
||||
t.Fatalf("expected namespaces from resolver snapshot")
|
||||
}
|
||||
if config.Subscriber != router {
|
||||
t.Fatalf("expected subscriber to be preserved")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPrepareManagedNamespaceWatcherDefaultsToTrackOnly(t *testing.T) {
|
||||
router := &testNamespaceSubscriber{name: "router"}
|
||||
logger := zap.NewNop()
|
||||
|
||||
Reference in New Issue
Block a user