layer1: run managed namespace watchers

This commit is contained in:
Naeel
2026-04-26 11:01:05 +03:00
parent 073f2c1504
commit b9236698f3
6 changed files with 46 additions and 6 deletions
+6
View File
@@ -117,6 +117,12 @@ func PrepareManagedNamespaceWatcher(ctx context.Context, logger *zap.Logger, com
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)
return manager, err
}
func LogNamespaceManagerSummary(logger *zap.Logger, message string, summary NamespaceManagerSummary) {
if logger == nil {
return
+17
View File
@@ -9,7 +9,10 @@ import (
"go.uber.org/zap"
corev1 "k8s.io/api/core/v1"
k8sfake "k8s.io/client-go/kubernetes/fake"
k8sCache "k8s.io/client-go/tools/cache"
managerPkg "github.com/fission/fission/pkg/utils/manager"
)
type testNamespaceSubscriber struct {
@@ -458,6 +461,20 @@ func TestPrepareManagedNamespaceWatcher(t *testing.T) {
}
}
func TestRunManagedNamespaceWatcher(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
router := &testNamespaceSubscriber{name: "router"}
logger := zap.NewNop()
manager, err := RunManagedNamespaceWatcher(ctx, logger, "router.NSWatcher", k8sfake.NewSimpleClientset(), managerPkg.New(), []string{"tenant-a"}, NamespaceRemovalStrategyTrackOnly, router)
if err != nil {
t.Fatalf("expected managed namespace watcher run success: %v", err)
}
if !reflect.DeepEqual([]string{"tenant-a"}, manager.Snapshot()) {
t.Fatalf("expected watcher manager snapshot to contain bootstrapped namespace")
}
}
func TestNamespaceManagerSummary(t *testing.T) {
manager := NewNamespaceManager()
manager.Upsert(NamespaceEvent{Type: NamespaceEventAdd, Name: "tenant-a", Source: NamespaceSourceWatcher})