controlplane/apiserver: Trim managedFields off self-requested informers

Signed-off-by: Eric Lin <exlin@google.com>
This commit is contained in:
Eric Lin 2024-05-02 09:39:18 +00:00
parent 108fd24f51
commit 3730f2614a

View File

@ -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