Merge pull request #18434 from mesosphere/sur-680-kubelet-events

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2015-12-10 02:35:24 -08:00
commit 940f5d4447

View File

@ -147,9 +147,20 @@ func (s *KubeletExecutorServer) runKubelet(
staticPodsConfigPath string,
apiclient *client.Client,
podLW *cache.ListWatch,
) error {
) (err error) {
defer func() {
if err != nil {
// close the channel here. When Run returns without error, the executorKubelet is
// responsible to do this. If it returns with an error, we are responsible here.
close(kubeletDone)
}
}()
kcfg, err := s.UnsecuredKubeletConfig()
if err == nil {
if err != nil {
return err
}
// apply Mesos specific settings
executorDone := make(chan struct{})
kcfg.Builder = func(kc *kubeletapp.KubeletConfig) (kubeletapp.KubeletBootstrap, *kconfig.PodConfig, error) {
@ -173,6 +184,21 @@ func (s *KubeletExecutorServer) runKubelet(
kcfg.DockerDaemonContainer = "" // don't move the docker daemon into a cgroup
kcfg.Hostname = kcfg.HostnameOverride
kcfg.KubeClient = apiclient
// taken from KubeletServer#Run(*KubeletConfig)
eventClientConfig, err := s.CreateAPIServerClientConfig()
if err != nil {
return err
}
// make a separate client for events
eventClientConfig.QPS = s.EventRecordQPS
eventClientConfig.Burst = s.EventBurst
kcfg.EventClient, err = client.New(eventClientConfig)
if err != nil {
return err
}
kcfg.NodeName = kcfg.HostnameOverride
kcfg.PodConfig = kconfig.NewPodConfig(kconfig.PodConfigNotificationIncremental, kcfg.Recorder) // override the default pod source
kcfg.StandaloneMode = false
@ -189,6 +215,7 @@ func (s *KubeletExecutorServer) runKubelet(
if err != nil {
return err
}
kcfg.CAdvisorInterface = cAdvisorInterface
kcfg.ContainerManager, err = cm.NewContainerManager(kcfg.Mounter, cAdvisorInterface)
if err != nil {
@ -216,14 +243,8 @@ func (s *KubeletExecutorServer) runKubelet(
// that because then every kubelet instance would query the master
// state.json which does not scale.
err = s.KubeletServer.Run(kcfg)
}
if err != nil {
// close the channel here. When Run returns without error, the executorKubelet is
// responsible to do this. If it returns with an error, we are responsible here.
close(kubeletDone)
}
return err
return
}
// Run runs the specified KubeletExecutorServer.