Use clientset.Interface for KubeClient

This commit is contained in:
Andrew Pilloud 2017-01-31 14:34:39 -08:00
parent 1271802692
commit 3f8505022c
3 changed files with 10 additions and 19 deletions

View File

@ -363,7 +363,7 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.KubeletDeps) (err error) {
} }
if kubeDeps == nil { if kubeDeps == nil {
var kubeClient *clientset.Clientset var kubeClient clientset.Interface
var eventClient v1core.EventsGetter var eventClient v1core.EventsGetter
var externalKubeClient clientgoclientset.Interface var externalKubeClient clientgoclientset.Interface
var cloud cloudprovider.Interface var cloud cloudprovider.Interface

View File

@ -29,7 +29,7 @@ import (
) )
// NewSourceApiserver creates a config source that watches and pulls from the apiserver. // 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))) lw := cache.NewListWatchFromClient(c.Core().RESTClient(), "pods", metav1.NamespaceAll, fields.OneTermEqualSelector(api.PodHostField, string(nodeName)))
newSourceApiserverFromLW(lw, updates) newSourceApiserverFromLW(lw, updates)
} }

View File

@ -220,7 +220,7 @@ type KubeletDeps struct {
ContainerManager cm.ContainerManager ContainerManager cm.ContainerManager
DockerClient dockertools.DockerInterface DockerClient dockertools.DockerInterface
EventClient v1core.EventsGetter EventClient v1core.EventsGetter
KubeClient *clientset.Clientset KubeClient clientset.Interface
ExternalKubeClient clientgoclientset.Interface ExternalKubeClient clientgoclientset.Interface
Mounter mount.Interface Mounter mount.Interface
NetworkPlugins []network.NetworkPlugin 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) 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 { if kubeDeps.PodConfig == nil {
var err error var err error
kubeDeps.PodConfig, err = makePodSourceConfig(kubeCfg, kubeDeps, nodeName) 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}) serviceStore := cache.NewIndexer(cache.MetaNamespaceKeyFunc, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc})
if kubeClient != nil { if kubeDeps.KubeClient != nil {
serviceLW := cache.NewListWatchFromClient(kubeClient.Core().RESTClient(), "services", metav1.NamespaceAll, fields.Everything()) serviceLW := cache.NewListWatchFromClient(kubeDeps.KubeClient.Core().RESTClient(), "services", metav1.NamespaceAll, fields.Everything())
cache.NewReflector(serviceLW, &v1.Service{}, serviceStore, 0).Run() cache.NewReflector(serviceLW, &v1.Service{}, serviceStore, 0).Run()
} }
serviceLister := &listers.StoreToServiceLister{Indexer: serviceStore} serviceLister := &listers.StoreToServiceLister{Indexer: serviceStore}
nodeStore := cache.NewStore(cache.MetaNamespaceKeyFunc) nodeStore := cache.NewStore(cache.MetaNamespaceKeyFunc)
if kubeClient != nil { if kubeDeps.KubeClient != nil {
fieldSelector := fields.Set{api.ObjectNameField: string(nodeName)}.AsSelector() 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() cache.NewReflector(nodeLW, &v1.Node{}, nodeStore, 0).Run()
} }
nodeLister := &listers.StoreToNodeLister{Store: nodeStore} nodeLister := &listers.StoreToNodeLister{Store: nodeStore}
@ -415,7 +406,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub
} }
containerRefManager := kubecontainer.NewRefManager() containerRefManager := kubecontainer.NewRefManager()
secretManager, err := secret.NewCachingSecretManager(kubeClient) secretManager, err := secret.NewCachingSecretManager(kubeDeps.KubeClient)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to initialize secret manager: %v", err) return nil, fmt.Errorf("failed to initialize secret manager: %v", err)
} }
@ -426,7 +417,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub
hostname: hostname, hostname: hostname,
nodeName: nodeName, nodeName: nodeName,
dockerClient: kubeDeps.DockerClient, dockerClient: kubeDeps.DockerClient,
kubeClient: kubeClient, kubeClient: kubeDeps.KubeClient,
rootDirectory: kubeCfg.RootDirectory, rootDirectory: kubeCfg.RootDirectory,
resyncInterval: kubeCfg.SyncFrequency.Duration, resyncInterval: kubeCfg.SyncFrequency.Duration,
containerRefManager: containerRefManager, containerRefManager: containerRefManager,
@ -699,7 +690,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Kub
} }
klet.imageManager = imageManager klet.imageManager = imageManager
klet.statusManager = status.NewManager(kubeClient, klet.podManager) klet.statusManager = status.NewManager(klet.kubeClient, klet.podManager)
klet.probeManager = prober.NewManager( klet.probeManager = prober.NewManager(
klet.statusManager, klet.statusManager,