layer1: share managed namespace watcher startup
This commit is contained in:
@@ -65,11 +65,7 @@ import (
|
||||
"time"
|
||||
|
||||
"go.uber.org/zap"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
k8sInformers "k8s.io/client-go/informers"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
k8sCache "k8s.io/client-go/tools/cache"
|
||||
|
||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||
"github.com/fission/fission/pkg/executor/executortype"
|
||||
@@ -96,30 +92,7 @@ func StartNSWatcher(
|
||||
if err != nil {
|
||||
logger.Error("multitenant.NSWatcher: BootstrapAndDispatch failed", zap.Error(err))
|
||||
}
|
||||
|
||||
// Use a label-filtered informer so only Namespaces with our label are delivered.
|
||||
// The resync period of 30m is standard for Fission informers — it re-lists to recover
|
||||
// from any missed events, but normal operation is purely event-driven (no ticking).
|
||||
factory := k8sInformers.NewSharedInformerFactoryWithOptions(
|
||||
kubernetesClient,
|
||||
30*time.Minute,
|
||||
k8sInformers.WithTweakListOptions(func(opts *metav1.ListOptions) {
|
||||
opts.LabelSelector = utils.ManagedNamespaceLabelSelector()
|
||||
}),
|
||||
)
|
||||
|
||||
nsInformer := factory.Core().V1().Namespaces().Informer()
|
||||
|
||||
_, _ = nsInformer.AddEventHandler(utils.NewNamespaceWatcherEventHandlers(ctx, logger, "multitenant.NSWatcher", nsManager, utils.NamespaceRemovalStrategyTrackOnly))
|
||||
|
||||
mgr.Add(ctx, func(ctx context.Context) {
|
||||
logger.Info("multitenant.NSWatcher: started", zap.String("label", utils.ManagedNamespaceLabelSelector()))
|
||||
factory.Start(ctx.Done())
|
||||
factory.WaitForCacheSync(ctx.Done())
|
||||
logger.Info("multitenant.NSWatcher: cache synced — watching for new namespaces")
|
||||
<-ctx.Done()
|
||||
logger.Info("multitenant.NSWatcher: stopped")
|
||||
})
|
||||
utils.StartManagedNamespaceWatcher(ctx, logger, "multitenant.NSWatcher", kubernetesClient, mgr, utils.NewNamespaceWatcherEventHandlers(ctx, logger, "multitenant.NSWatcher", nsManager, utils.NamespaceRemovalStrategyTrackOnly))
|
||||
}
|
||||
|
||||
// registerNamespace calls AddNamespace on every executor type for the given namespace.
|
||||
|
||||
Reference in New Issue
Block a user