From 3f8505022cad3791c5d7553dee68374c74b8d889 Mon Sep 17 00:00:00 2001 From: Andrew Pilloud Date: Tue, 31 Jan 2017 14:34:39 -0800 Subject: [PATCH] Use clientset.Interface for KubeClient --- cmd/kubelet/app/server.go | 2 +- pkg/kubelet/config/apiserver.go | 2 +- pkg/kubelet/kubelet.go | 25 ++++++++----------------- 3 files changed, 10 insertions(+), 19 deletions(-) diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 51e12915075..f4693e1c44b 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -363,7 +363,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.KubeletDeps) (err error) { } if kubeDeps == nil { - var kubeClient *clientset.Clientset + var kubeClient clientset.Interface var eventClient v1core.EventsGetter var externalKubeClient clientgoclientset.Interface var cloud cloudprovider.Interface diff --git a/pkg/kubelet/config/apiserver.go b/pkg/kubelet/config/apiserver.go index a9eedf9f3b4..367dbac9100 100644 --- a/pkg/kubelet/config/apiserver.go +++ b/pkg/kubelet/config/apiserver.go @@ -29,7 +29,7 @@ import ( ) // NewSourceApiserver creates a config source that watches and pulls from the apiserver. -func NewSourceApiserver(c *clientset.Clientset, nodeName types.NodeName, updates chan<- interface{}) { +func NewSourceApiserver(c clientset.Interface, nodeName types.NodeName, updates chan<- interface{}) { lw := cache.NewListWatchFromClient(c.Core().RESTClient(), "pods", metav1.NamespaceAll, fields.OneTermEqualSelector(api.PodHostField, string(nodeName))) newSourceApiserverFromLW(lw, updates) } diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 8c6bfd4a0fa..a3c39f4ec70 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -220,7 +220,7 @@ type KubeletDeps struct { ContainerManager cm.ContainerManager DockerClient dockertools.DockerInterface EventClient v1core.EventsGetter - KubeClient *clientset.Clientset + KubeClient clientset.Interface ExternalKubeClient clientgoclientset.Interface Mounter mount.Interface NetworkPlugins []network.NetworkPlugin @@ -318,15 +318,6 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub glog.V(2).Infof("cloud provider determined current node name to be %s", nodeName) } - // TODO: KubeletDeps.KubeClient should be a client interface, but client interface misses certain methods - // used by kubelet. Since NewMainKubelet expects a client interface, we need to make sure we are not passing - // a nil pointer to it when what we really want is a nil interface. - var kubeClient clientset.Interface - if kubeDeps.KubeClient != nil { - kubeClient = kubeDeps.KubeClient - // TODO: remove this when we've refactored kubelet to only use clientset. - } - if kubeDeps.PodConfig == nil { var err error kubeDeps.PodConfig, err = makePodSourceConfig(kubeCfg, kubeDeps, nodeName) @@ -384,16 +375,16 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub } serviceStore := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) - if kubeClient != nil { - serviceLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "services", metav1.NamespaceAll, fields.Everything()) + if kubeDeps.KubeClient != nil { + serviceLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.Core().RESTClient(), "services", metav1.NamespaceAll, fields.Everything()) cache.NewReflector(serviceLW, &v1.Service{}, serviceStore, 0).Run() } serviceLister := &listers.StoreToServiceLister{Indexer: serviceStore} nodeStore := cache.NewStore(cache.MetaNamespaceKeyFunc) - if kubeClient != nil { + if kubeDeps.KubeClient != nil { fieldSelector := fields.Set{api.ObjectNameField: string(nodeName)}.AsSelector() - nodeLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "nodes", metav1.NamespaceAll, fieldSelector) + nodeLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.Core().RESTClient(), "nodes", metav1.NamespaceAll, fieldSelector) cache.NewReflector(nodeLW, &v1.Node{}, nodeStore, 0).Run() } nodeLister := &listers.StoreToNodeLister{Store: nodeStore} @@ -415,7 +406,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub } containerRefManager := kubecontainer.NewRefManager() - secretManager, err := secret.NewCachingSecretManager(kubeClient) + secretManager, err := secret.NewCachingSecretManager(kubeDeps.KubeClient) if err != nil { return nil, fmt.Errorf("failed to initialize secret manager: %v", err) } @@ -426,7 +417,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub hostname: hostname, nodeName: nodeName, dockerClient: kubeDeps.DockerClient, - kubeClient: kubeClient, + kubeClient: kubeDeps.KubeClient, rootDirectory: kubeCfg.RootDirectory, resyncInterval: kubeCfg.SyncFrequency.Duration, containerRefManager: containerRefManager, @@ -699,7 +690,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub } klet.imageManager = imageManager - klet.statusManager = status.NewManager(kubeClient, klet.podManager) + klet.statusManager = status.NewManager(klet.kubeClient, klet.podManager) klet.probeManager = prober.NewManager( klet.statusManager,