mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Trim managedFields in controller-manager
Signed-off-by: Eric Lin <exlin@google.com>
This commit is contained in:
		@@ -29,6 +29,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"github.com/spf13/cobra"
 | 
						"github.com/spf13/cobra"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						"k8s.io/apimachinery/pkg/api/meta"
 | 
				
			||||||
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
						metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
						"k8s.io/apimachinery/pkg/runtime/schema"
 | 
				
			||||||
	utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
						utilruntime "k8s.io/apimachinery/pkg/util/runtime"
 | 
				
			||||||
@@ -524,11 +525,19 @@ func GetAvailableResources(clientBuilder clientbuilder.ControllerClientBuilder)
 | 
				
			|||||||
// controllers such as the cloud provider and clientBuilder. rootClientBuilder is only used for
 | 
					// controllers such as the cloud provider and clientBuilder. rootClientBuilder is only used for
 | 
				
			||||||
// the shared-informers client and token controller.
 | 
					// the shared-informers client and token controller.
 | 
				
			||||||
func CreateControllerContext(logger klog.Logger, s *config.CompletedConfig, rootClientBuilder, clientBuilder clientbuilder.ControllerClientBuilder, stop <-chan struct{}) (ControllerContext, error) {
 | 
					func CreateControllerContext(logger klog.Logger, s *config.CompletedConfig, rootClientBuilder, clientBuilder clientbuilder.ControllerClientBuilder, stop <-chan struct{}) (ControllerContext, error) {
 | 
				
			||||||
 | 
						// 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
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	versionedClient := rootClientBuilder.ClientOrDie("shared-informers")
 | 
						versionedClient := rootClientBuilder.ClientOrDie("shared-informers")
 | 
				
			||||||
	sharedInformers := informers.NewSharedInformerFactory(versionedClient, ResyncPeriod(s)())
 | 
						sharedInformers := informers.NewSharedInformerFactoryWithOptions(versionedClient, ResyncPeriod(s)(), informers.WithTransform(trim))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	metadataClient := metadata.NewForConfigOrDie(rootClientBuilder.ConfigOrDie("metadata-informers"))
 | 
						metadataClient := metadata.NewForConfigOrDie(rootClientBuilder.ConfigOrDie("metadata-informers"))
 | 
				
			||||||
	metadataInformers := metadatainformer.NewSharedInformerFactory(metadataClient, ResyncPeriod(s)())
 | 
						metadataInformers := metadatainformer.NewSharedInformerFactoryWithOptions(metadataClient, ResyncPeriod(s)(), metadatainformer.WithTransform(trim))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// If apiserver is not running we should wait for some time and fail only then. This is particularly
 | 
						// If apiserver is not running we should wait for some time and fail only then. This is particularly
 | 
				
			||||||
	// important when we start apiserver and controller manager at the same time.
 | 
						// important when we start apiserver and controller manager at the same time.
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user