Skip to content

Commit 4542e6b

Browse files
[release-1.17] Reduce mt-broker-controller memory usage with namespaced endpoint informer (#8421)
* Reduce mt-broker-controller memory usage with namespaced endpoint informer Currently, the mt-broker-controller is using a cluster-wide endpoints informer but it actually only uses endpoints in the "SYSTEM_NAMESPACE". Using the namespaced informer factory ensures that the watcher is only watching endpoints in the `knative-eventing` (also known as `SYSTEM_NAMESPACE`) namespace. Signed-off-by: Pierangelo Di Pilato <[email protected]> * Start informer Signed-off-by: Pierangelo Di Pilato <[email protected]> --------- Signed-off-by: Pierangelo Di Pilato <[email protected]> Co-authored-by: Pierangelo Di Pilato <[email protected]>
1 parent cbdf86e commit 4542e6b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

pkg/reconciler/broker/controller.go

+7-2
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ import (
2525
"k8s.io/client-go/tools/cache"
2626
"knative.dev/pkg/apis"
2727
configmapinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/configmap"
28-
endpointsinformer "knative.dev/pkg/client/injection/kube/informers/core/v1/endpoints"
2928
"knative.dev/pkg/configmap"
3029
"knative.dev/pkg/controller"
3130
"knative.dev/pkg/injection/clients/dynamicclient"
3231
secretinformer "knative.dev/pkg/injection/clients/namespacedkube/informers/core/v1/secret"
32+
namespacedinformerfactory "knative.dev/pkg/injection/clients/namespacedkube/informers/factory"
3333
"knative.dev/pkg/logging"
3434
pkgreconciler "knative.dev/pkg/reconciler"
3535
"knative.dev/pkg/resolver"
@@ -69,7 +69,12 @@ func NewController(
6969
logger := logging.FromContext(ctx)
7070
brokerInformer := brokerinformer.Get(ctx)
7171
subscriptionInformer := subscriptioninformer.Get(ctx)
72-
endpointsInformer := endpointsinformer.Get(ctx)
72+
73+
endpointsInformer := namespacedinformerfactory.Get(ctx).Core().V1().Endpoints()
74+
if err := controller.StartInformers(ctx.Done(), endpointsInformer.Informer()); err != nil {
75+
logger.Fatalw("Failed to start namespaced endpoints informer", zap.Error(err))
76+
}
77+
7378
configmapInformer := configmapinformer.Get(ctx)
7479
secretInformer := secretinformer.Get(ctx)
7580
eventPolicyInformer := eventpolicyinformer.Get(ctx)

0 commit comments

Comments
 (0)