From f9129b02a5646d4d2e58fd0a3a36442a43799137 Mon Sep 17 00:00:00 2001 From: Vishnu kannan Date: Wed, 2 Mar 2016 14:18:33 -0800 Subject: [PATCH 1/2] 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) } From e33ec7a6ba18fc44c038de2689afc54e46c85671 Mon Sep 17 00:00:00 2001 From: Vishnu kannan Date: Tue, 1 Mar 2016 14:28:22 -0800 Subject: [PATCH 2/2] Re-enable system metrics kubelet tests. Signed-off-by: Vishnu kannan --- test/e2e_node/kubelet_test.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/e2e_node/kubelet_test.go b/test/e2e_node/kubelet_test.go index 26fcd57e5ff..1fd2b942669 100644 --- a/test/e2e_node/kubelet_test.go +++ b/test/e2e_node/kubelet_test.go @@ -198,16 +198,16 @@ var _ = Describe("Kubelet", func() { Expect(summary.Node.Fs.UsedBytes).NotTo(BeNil()) Expect(*summary.Node.Fs.UsedBytes).NotTo(BeZero()) - // TODO: Enable this test when #22198 is resolved. - // By("Having resources for kubelet and runtime system containers") - // sysContainers := map[string]stats.ContainerStats{} - // sysContainersList := []string{} - // for _, container := range summary.Node.SystemContainers { - // sysContainers[container.Name] = container - // sysContainersList = append(sysContainersList, container.Name) - // ExpectContainerStatsNotEmpty(&container) - // } - // Expect(sysContainersList).To(ConsistOf("kubelet", "runtime")) + By("Having resources for kubelet and runtime system containers") + sysContainers := map[string]stats.ContainerStats{} + sysContainersList := []string{} + for _, container := range summary.Node.SystemContainers { + sysContainers[container.Name] = container + sysContainersList = append(sysContainersList, container.Name) + ExpectContainerStatsNotEmpty(&container) + } + Expect(sysContainersList).To(ContainElement("kubelet")) + Expect(sysContainersList).To(ContainElement("runtime")) // Verify Pods Stats are present podsList := []string{}