From 3730f2614adcc77647bc0b8f23abbd21d682cc17 Mon Sep 17 00:00:00 2001 From: Eric Lin Date: Thu, 2 May 2024 09:39:18 +0000 Subject: [PATCH] controlplane/apiserver: Trim managedFields off self-requested informers Signed-off-by: Eric Lin --- pkg/controlplane/apiserver/config.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pkg/controlplane/apiserver/config.go b/pkg/controlplane/apiserver/config.go index d3da39d629a..762aa48327f 100644 --- a/pkg/controlplane/apiserver/config.go +++ b/pkg/controlplane/apiserver/config.go @@ -24,6 +24,7 @@ import ( oteltrace "go.opentelemetry.io/otel/trace" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" @@ -135,7 +136,13 @@ func BuildGenericConfig( lastErr = fmt.Errorf("failed to create real external clientset: %w", err) return } - versionedInformers = clientgoinformers.NewSharedInformerFactory(clientgoExternalClient, 10*time.Minute) + trim := func(obj interface{}) (interface{}, error) { + if accessor, err := meta.Accessor(obj); err == nil && accessor.GetManagedFields() != nil { + accessor.SetManagedFields(nil) + } + return obj, nil + } + versionedInformers = clientgoinformers.NewSharedInformerFactoryWithOptions(clientgoExternalClient, 10*time.Minute, clientgoinformers.WithTransform(trim)) if lastErr = s.Features.ApplyTo(genericConfig, clientgoExternalClient, versionedInformers); lastErr != nil { return