@@ -33,6 +33,7 @@ import (
3333
3434 "github.com/go-logr/logr"
3535 flag "github.com/spf13/pflag"
36+ "k8s.io/apimachinery/pkg/labels"
3637 "k8s.io/apimachinery/pkg/runtime"
3738 utilruntime "k8s.io/apimachinery/pkg/util/runtime"
3839 "k8s.io/client-go/discovery"
@@ -41,6 +42,7 @@ import (
4142 ctrl "sigs.k8s.io/controller-runtime"
4243 "sigs.k8s.io/controller-runtime/pkg/cache"
4344 "sigs.k8s.io/controller-runtime/pkg/certwatcher"
45+ "sigs.k8s.io/controller-runtime/pkg/client"
4446 "sigs.k8s.io/controller-runtime/pkg/healthz"
4547 ctrlzap "sigs.k8s.io/controller-runtime/pkg/log/zap"
4648 "sigs.k8s.io/controller-runtime/pkg/manager"
@@ -65,6 +67,7 @@ import (
6567 promoperator "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1"
6668 "github.com/prometheus/client_golang/api"
6769 promv1 "github.com/prometheus/client_golang/api/prometheus/v1"
70+ corev1 "k8s.io/api/core/v1"
6871 crmetrics "sigs.k8s.io/controller-runtime/pkg/metrics"
6972 inferencePoolV1 "sigs.k8s.io/gateway-api-inference-extension/api/v1"
7073 inferencePoolV1alpha2 "sigs.k8s.io/gateway-api-inference-extension/apix/v1alpha2"
@@ -348,6 +351,27 @@ func main() {
348351 watchNS : {},
349352 },
350353 }
354+ } else {
355+ // Multi-namespace mode: Use label selector to filter ConfigMaps in the cache
356+ // This significantly reduces memory usage by only caching WVA-related configmaps
357+ wvaConfigSelector := labels .SelectorFromSet (labels.Set {
358+ "app.kubernetes.io/name" : "workload-variant-autoscaler" ,
359+ })
360+
361+ setupLog .Info ("Configuring cache with label selector for ConfigMaps" ,
362+ "labelSelector" , wvaConfigSelector .String ())
363+
364+ // Configure cache to only watch configmaps with the WVA labels
365+ // Other resource types are cached normally without filtering
366+ mgrOptions .Cache = cache.Options {
367+ ByObject : map [client.Object ]cache.ByObject {
368+ & corev1.ConfigMap {}: {
369+ // Empty map means cache all namespaces, but filter by label
370+ Namespaces : map [string ]cache.Config {},
371+ Label : wvaConfigSelector ,
372+ },
373+ },
374+ }
351375 }
352376
353377 mgr , err := ctrl .NewManager (restConfig , mgrOptions )
0 commit comments