From f9129b02a5646d4d2e58fd0a3a36442a43799137 Mon Sep 17 00:00:00 2001 From: Vishnu kannan Date: Wed, 2 Mar 2016 14:18:33 -0800 Subject: [PATCH] Start for real background tasks in container manager. Signed-off-by: Vishnu kannan --- pkg/kubelet/cm/container_manager_linux.go | 35 ++++++++++++----------- pkg/kubelet/kubelet.go | 3 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/pkg/kubelet/cm/container_manager_linux.go b/pkg/kubelet/cm/container_manager_linux.go index 7220d04faa4..9ef4472d5ed 100644 --- a/pkg/kubelet/cm/container_manager_linux.go +++ b/pkg/kubelet/cm/container_manager_linux.go @@ -324,28 +324,29 @@ func (cm *containerManagerImpl) Start() error { numEnsureStateFuncs++ } } - if numEnsureStateFuncs == 0 { - return nil + if numEnsureStateFuncs >= 0 { + go wait.Until(func() { + for _, cont := range cm.systemContainers { + if cont.ensureStateFunc != nil { + if err := cont.ensureStateFunc(cont.manager); err != nil { + glog.Warningf("[ContainerManager] Failed to ensure state of %q: %v", cont.name, err) + } + } + } + }, time.Minute, wait.NeverStop) + } // Run ensure state functions every minute. - go wait.Until(func() { - for _, cont := range cm.systemContainers { - if cont.ensureStateFunc != nil { - if err := cont.ensureStateFunc(cont.manager); err != nil { - glog.Warningf("[ContainerManager] Failed to ensure state of %q: %v", cont.name, err) + if len(cm.periodicTasks) > 0 { + go wait.Until(func() { + for _, task := range cm.periodicTasks { + if task != nil { + task() } } - } - }, time.Minute, wait.NeverStop) - - go wait.Until(func() { - for _, task := range cm.periodicTasks { - if task != nil { - task() - } - } - }, 5*time.Minute, wait.NeverStop) + }, 5*time.Minute, wait.NeverStop) + } return nil } diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 4a0d7628a99..875887542d3 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -18,7 +18,6 @@ package kubelet import ( "bytes" - "errors" "fmt" "io" "io/ioutil" @@ -923,7 +922,7 @@ func (kl *Kubelet) listPodsFromDisk() ([]types.UID, error) { func (kl *Kubelet) GetNode() (*api.Node, error) { if kl.standaloneMode { - return nil, errors.New("no node entry for kubelet in standalone mode") + return kl.initialNodeStatus() } return kl.nodeInfo.GetNodeInfo(kl.nodeName) }