From 57a3af1f876cfd7125c99b0267ccbe481f1ada00 Mon Sep 17 00:00:00 2001 From: Paco Xu Date: Tue, 1 Nov 2022 15:00:03 +0800 Subject: [PATCH] kubelet: don't set secret and configmap manager if running in standalone mode --- pkg/kubelet/kubelet.go | 36 +++++++++++++++++++----------------- pkg/kubelet/volume_host.go | 14 ++++++++++++-- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index a9660e711e6..709036f21bf 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -550,24 +550,26 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, var secretManager secret.Manager var configMapManager configmap.Manager - switch kubeCfg.ConfigMapAndSecretChangeDetectionStrategy { - case kubeletconfiginternal.WatchChangeDetectionStrategy: - secretManager = secret.NewWatchingSecretManager(kubeDeps.KubeClient, klet.resyncInterval) - configMapManager = configmap.NewWatchingConfigMapManager(kubeDeps.KubeClient, klet.resyncInterval) - case kubeletconfiginternal.TTLCacheChangeDetectionStrategy: - secretManager = secret.NewCachingSecretManager( - kubeDeps.KubeClient, manager.GetObjectTTLFromNodeFunc(klet.GetNode)) - configMapManager = configmap.NewCachingConfigMapManager( - kubeDeps.KubeClient, manager.GetObjectTTLFromNodeFunc(klet.GetNode)) - case kubeletconfiginternal.GetChangeDetectionStrategy: - secretManager = secret.NewSimpleSecretManager(kubeDeps.KubeClient) - configMapManager = configmap.NewSimpleConfigMapManager(kubeDeps.KubeClient) - default: - return nil, fmt.Errorf("unknown configmap and secret manager mode: %v", kubeCfg.ConfigMapAndSecretChangeDetectionStrategy) - } + if klet.kubeClient != nil { + switch kubeCfg.ConfigMapAndSecretChangeDetectionStrategy { + case kubeletconfiginternal.WatchChangeDetectionStrategy: + secretManager = secret.NewWatchingSecretManager(klet.kubeClient, klet.resyncInterval) + configMapManager = configmap.NewWatchingConfigMapManager(klet.kubeClient, klet.resyncInterval) + case kubeletconfiginternal.TTLCacheChangeDetectionStrategy: + secretManager = secret.NewCachingSecretManager( + klet.kubeClient, manager.GetObjectTTLFromNodeFunc(klet.GetNode)) + configMapManager = configmap.NewCachingConfigMapManager( + klet.kubeClient, manager.GetObjectTTLFromNodeFunc(klet.GetNode)) + case kubeletconfiginternal.GetChangeDetectionStrategy: + secretManager = secret.NewSimpleSecretManager(klet.kubeClient) + configMapManager = configmap.NewSimpleConfigMapManager(klet.kubeClient) + default: + return nil, fmt.Errorf("unknown configmap and secret manager mode: %v", kubeCfg.ConfigMapAndSecretChangeDetectionStrategy) + } - klet.secretManager = secretManager - klet.configMapManager = configMapManager + klet.secretManager = secretManager + klet.configMapManager = configMapManager + } if klet.experimentalHostUserNamespaceDefaulting { klog.InfoS("Experimental host user namespace defaulting is enabled") diff --git a/pkg/kubelet/volume_host.go b/pkg/kubelet/volume_host.go index 9c771c08635..799c2f731d9 100644 --- a/pkg/kubelet/volume_host.go +++ b/pkg/kubelet/volume_host.go @@ -257,11 +257,21 @@ func (kvh *kubeletVolumeHost) GetNodeAllocatable() (v1.ResourceList, error) { } func (kvh *kubeletVolumeHost) GetSecretFunc() func(namespace, name string) (*v1.Secret, error) { - return kvh.secretManager.GetSecret + if kvh.secretManager != nil { + return kvh.secretManager.GetSecret + } + return func(namespace, name string) (*v1.Secret, error) { + return nil, fmt.Errorf("not supported") + } } func (kvh *kubeletVolumeHost) GetConfigMapFunc() func(namespace, name string) (*v1.ConfigMap, error) { - return kvh.configMapManager.GetConfigMap + if kvh.configMapManager != nil { + return kvh.configMapManager.GetConfigMap + } + return func(namespace, name string) (*v1.ConfigMap, error) { + return nil, fmt.Errorf("not supported") + } } func (kvh *kubeletVolumeHost) GetServiceAccountTokenFunc() func(namespace, name string, tr *authenticationv1.TokenRequest) (*authenticationv1.TokenRequest, error) {