layer1: centralize managed namespace labels step 13

This commit is contained in:
Naeel
2026-04-26 10:04:18 +03:00
parent 5e5058ba0e
commit b3f99b2b6c
6 changed files with 52 additions and 23 deletions
+3 -13
View File
@@ -77,16 +77,6 @@ import (
"github.com/fission/fission/pkg/utils/manager"
)
// ManagedNSLabel is the Kubernetes label key that marks a Namespace as dynamically managed
// by Fission multi-tenant mode. The expected value is "true".
//
// Platforms MUST set this label on every user Namespace they create:
//
// metadata:
// labels:
// fission.io/managed: "true"
const ManagedNSLabel = "fission.io/managed"
// StartNSWatcher registers a Kubernetes Namespace Informer that reacts immediately
// when a Namespace with label fission.io/managed=true is created or relabeled.
//
@@ -109,7 +99,7 @@ func StartNSWatcher(
kubernetesClient,
30*time.Minute,
k8sInformers.WithTweakListOptions(func(opts *metav1.ListOptions) {
opts.LabelSelector = ManagedNSLabel + "=true"
opts.LabelSelector = utils.ManagedNamespaceLabelSelector()
}),
)
@@ -131,7 +121,7 @@ func StartNSWatcher(
if !ok {
return
}
if nsObj.Labels[ManagedNSLabel] != "true" {
if !utils.IsManagedNamespace(nsObj.Labels) {
return // label was removed — nothing to do (executor keeps existing registrations)
}
registerNamespace(ctx, logger, kubernetesClient, nsObj.Name, executorTypes, mgr)
@@ -139,7 +129,7 @@ func StartNSWatcher(
})
mgr.Add(ctx, func(ctx context.Context) {
logger.Info("multitenant.NSWatcher: started", zap.String("label", ManagedNSLabel+"=true"))
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")