From f54eeeb8d64f5327e19a41135ad504581bdb1334 Mon Sep 17 00:00:00 2001 From: James DeFelice Date: Mon, 8 Jun 2015 19:19:17 +0000 Subject: [PATCH] refactor createAPIServerClient for easier integration with 3rd party kubelet extensions, e.g. kubernetes-mesos --- cmd/kubelet/app/server.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 957310e98dc..9b48b542a40 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -253,7 +253,11 @@ func (s *KubeletServer) Run(_ []string) error { glog.Warning(err) } - client, err := s.createAPIServerClient() + var apiclient *client.Client + clientConfig, err := s.CreateAPIServerClientConfig() + if err == nil { + apiclient, err = client.New(clientConfig) + } if err != nil && len(s.APIServerList) > 0 { glog.Warningf("No API client: %v", err) } @@ -333,7 +337,7 @@ func (s *KubeletServer) Run(_ []string) error { EnableServer: s.EnableServer, EnableDebuggingHandlers: s.EnableDebuggingHandlers, DockerClient: dockertools.ConnectToDockerOrDie(s.DockerEndpoint), - KubeClient: client, + KubeClient: apiclient, MasterServiceNamespace: s.MasterServiceNamespace, VolumePlugins: ProbeVolumePlugins(), NetworkPlugins: ProbeNetworkPlugins(), @@ -453,7 +457,11 @@ func (s *KubeletServer) createClientConfig() (*client.Config, error) { return clientConfig, nil } -func (s *KubeletServer) createAPIServerClient() (*client.Client, error) { +// CreateAPIServerClientConfig generates a client.Config from command line flags, +// including api-server-list, via createClientConfig and then injects chaos into +// the configuration via addChaosToClientConfig. This func is exported to support +// integration with third party kubelet extensions (e.g. kubernetes-mesos). +func (s *KubeletServer) CreateAPIServerClientConfig() (*client.Config, error) { if len(s.APIServerList) < 1 { return nil, fmt.Errorf("no api servers specified") } @@ -467,11 +475,7 @@ func (s *KubeletServer) createAPIServerClient() (*client.Client, error) { return nil, err } s.addChaosToClientConfig(clientConfig) - client, err := client.New(clientConfig) - if err != nil { - return nil, err - } - return client, nil + return clientConfig, nil } // addChaosToClientConfig injects random errors into client connections if configured.