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