From 08e63e38d987147fba0ef0345ce6642c6182dcbd Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Fri, 12 Jun 2026 17:20:25 +0300 Subject: [PATCH] kubelet: pass context to GetObjectTTLFromNodeFunc instead of context.Background() Replace the internal context.Background() call in GetObjectTTLFromNodeFunc with an explicit ctx parameter, removing the TODO comment. --- pkg/kubelet/kubelet.go | 4 ++-- pkg/kubelet/util/manager/cache_based_manager.go | 6 ++---- pkg/kubelet/util/manager/cache_based_manager_test.go | 3 ++- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index d4f0b0cd919..1eb496f26ae 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -670,9 +670,9 @@ func NewMainKubelet(ctx context.Context, configMapManager = configmap.NewWatchingConfigMapManager(klet.kubeClient, klet.resyncInterval) case kubeletconfiginternal.TTLCacheChangeDetectionStrategy: secretManager = secret.NewCachingSecretManager( - klet.kubeClient, manager.GetObjectTTLFromNodeFunc(klet.GetNode)) + klet.kubeClient, manager.GetObjectTTLFromNodeFunc(ctx, klet.GetNode)) configMapManager = configmap.NewCachingConfigMapManager( - klet.kubeClient, manager.GetObjectTTLFromNodeFunc(klet.GetNode)) + klet.kubeClient, manager.GetObjectTTLFromNodeFunc(ctx, klet.GetNode)) case kubeletconfiginternal.GetChangeDetectionStrategy: secretManager = secret.NewSimpleSecretManager(klet.kubeClient) configMapManager = configmap.NewSimpleConfigMapManager(klet.kubeClient) diff --git a/pkg/kubelet/util/manager/cache_based_manager.go b/pkg/kubelet/util/manager/cache_based_manager.go index 65595cb52d6..b4f9a90191a 100644 --- a/pkg/kubelet/util/manager/cache_based_manager.go +++ b/pkg/kubelet/util/manager/cache_based_manager.go @@ -130,11 +130,9 @@ func (s *objectStore) DeleteReference(namespace, name string, _ types.UID) { // GetObjectTTLFromNodeFunc returns a function that returns TTL value // from a given Node object. -func GetObjectTTLFromNodeFunc(getNode func(context.Context) (*v1.Node, error)) GetObjectTTLFunc { +func GetObjectTTLFromNodeFunc(ctx context.Context, getNode func(context.Context) (*v1.Node, error)) GetObjectTTLFunc { return func() (time.Duration, bool) { - // TODO: Pass context from upper level instead of using context.Background(). - // This requires changing the GetObjectTTLFunc signature to accept a context parameter. - node, err := getNode(context.Background()) + node, err := getNode(ctx) if err != nil { return time.Duration(0), false } diff --git a/pkg/kubelet/util/manager/cache_based_manager_test.go b/pkg/kubelet/util/manager/cache_based_manager_test.go index d386033fb08..286b4ecbd29 100644 --- a/pkg/kubelet/util/manager/cache_based_manager_test.go +++ b/pkg/kubelet/util/manager/cache_based_manager_test.go @@ -260,6 +260,7 @@ func TestCustomTTL(t *testing.T) { } func TestParseNodeAnnotation(t *testing.T) { + tCtx := ktesting.Init(t) testCases := []struct { node *v1.Node err error @@ -320,7 +321,7 @@ func TestParseNodeAnnotation(t *testing.T) { } for i, testCase := range testCases { getNode := func(context.Context) (*v1.Node, error) { return testCase.node, testCase.err } - ttl, exists := GetObjectTTLFromNodeFunc(getNode)() + ttl, exists := GetObjectTTLFromNodeFunc(tCtx, getNode)() if exists != testCase.exists { t.Errorf("%d: incorrect parsing: %t", i, exists) continue