From 9e310140a3ebd3e676b3b9c89b605567a2d80186 Mon Sep 17 00:00:00 2001 From: Aditi Gupta Date: Wed, 22 Oct 2025 14:48:54 -0700 Subject: [PATCH] apimachinery: Use informer.RunWithContext in various components Kubernetes-commit: 915866f0e414d0afc4f1cc883d86a51a66d74e15 --- metadata/metadatainformer/informer.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/metadata/metadatainformer/informer.go b/metadata/metadatainformer/informer.go index 665198f12..de32bc3ff 100644 --- a/metadata/metadatainformer/informer.go +++ b/metadata/metadatainformer/informer.go @@ -25,6 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/informers" "k8s.io/client-go/metadata" @@ -117,8 +118,15 @@ func (f *metadataSharedInformerFactory) ForResource(gvr schema.GroupVersionResou return informer } -// Start initializes all requested informers. +// Start is a legacy wrapper that initializes all requested informers. +// +//logcheck:context // StartWithContext should be used instead of Start in code which supports contextual logging. func (f *metadataSharedInformerFactory) Start(stopCh <-chan struct{}) { + f.StartWithContext(wait.ContextForChannel(stopCh)) +} + +// StartWithContext initializes all requested informers. +func (f *metadataSharedInformerFactory) StartWithContext(ctx context.Context) { f.lock.Lock() defer f.lock.Unlock() @@ -135,7 +143,7 @@ func (f *metadataSharedInformerFactory) Start(stopCh <-chan struct{}) { informer := informer.Informer() go func() { defer f.wg.Done() - informer.Run(stopCh) + informer.RunWithContext(ctx) }() f.startedInformers[informerType] = true }