From 74d1f7f349887b4950a264b7d77efa6d100424bb Mon Sep 17 00:00:00 2001 From: Eric Lin Date: Wed, 27 Sep 2023 13:48:45 +0000 Subject: [PATCH] Trim managedFields in shared informer factory Signed-off-by: Eric Lin --- cluster-autoscaler/main.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/cluster-autoscaler/main.go b/cluster-autoscaler/main.go index 680990a07956..8405969f5a9b 100644 --- a/cluster-autoscaler/main.go +++ b/cluster-autoscaler/main.go @@ -35,6 +35,7 @@ import ( "github.com/spf13/pflag" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/server/mux" "k8s.io/apiserver/pkg/server/routes" @@ -444,7 +445,15 @@ func buildAutoscaler(debuggingSnapshotter debuggingsnapshot.DebuggingSnapshotter kubeClientConfig.Burst = autoscalingOptions.KubeClientBurst kubeClientConfig.QPS = float32(autoscalingOptions.KubeClientQPS) kubeClient := createKubeClient(kubeClientConfig) - informerFactory := informers.NewSharedInformerFactory(kubeClient, 0) + + // Informer transform to trim ManagedFields for memory efficiency. + trim := func(obj interface{}) (interface{}, error) { + if accessor, err := meta.Accessor(obj); err == nil { + accessor.SetManagedFields(nil) + } + return obj, nil + } + informerFactory := informers.NewSharedInformerFactoryWithOptions(kubeClient, 0, informers.WithTransform(trim)) eventsKubeClient := createKubeClient(getKubeConfig())