From 643a7f193a1d3fab617b99b8e8845395aea42b00 Mon Sep 17 00:00:00 2001 From: "Dr. Stefan Schimanski" Date: Wed, 23 Sep 2015 15:25:52 +0200 Subject: [PATCH] Assume full cgroup hierarchy only on gce and gke for e2e tests Other cluster provider than gce or gke might have different cgroup layouts. From outside we cannot know how these look like (especially in conformance test which do not know the cluster provider at all). Hence, this PR defaults to only the "/" cgroup to collect stats for. In the case of gce or gke the full container list is tested. Fixes https://github.com/mesosphere/kubernetes-mesos/issues/436 --- test/e2e/kubelet.go | 2 +- test/e2e/kubelet_stats.go | 27 ++++++++++++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/test/e2e/kubelet.go b/test/e2e/kubelet.go index 6741e7bf63a..3d18494e2ad 100644 --- a/test/e2e/kubelet.go +++ b/test/e2e/kubelet.go @@ -103,7 +103,7 @@ var _ = Describe("kubelet", func() { for _, node := range nodes.Items { nodeNames.Insert(node.Name) } - resourceMonitor = newResourceMonitor(framework.Client, targetContainers, containerStatsPollingInterval) + resourceMonitor = newResourceMonitor(framework.Client, targetContainers(), containerStatsPollingInterval) resourceMonitor.Start() }) diff --git a/test/e2e/kubelet_stats.go b/test/e2e/kubelet_stats.go index 98fca776661..26c2e971f9c 100644 --- a/test/e2e/kubelet_stats.go +++ b/test/e2e/kubelet_stats.go @@ -178,12 +178,20 @@ const ( ) // A list of containers for which we want to collect resource usage. -var targetContainers = []string{ - "/", - "/docker-daemon", - "/kubelet", - "/kube-proxy", - "/system", +func targetContainers() []string { + if providerIs("gce", "gke") { + return []string{ + "/", + "/docker-daemon", + "/kubelet", + "/kube-proxy", + "/system", + } + } else { + return []string{ + "/", + } + } } type containerResourceUsage struct { @@ -229,8 +237,9 @@ func getOneTimeResourceUsageOnNode(c *client.Client, nodeName string, cpuInterva return nil, err } // Process container infos that are relevant to us. - usageMap := make(map[string]*containerResourceUsage, len(targetContainers)) - for _, name := range targetContainers { + containers := targetContainers() + usageMap := make(map[string]*containerResourceUsage, len(containers)) + for _, name := range containers { info, ok := containerInfos[name] if !ok { return nil, fmt.Errorf("missing info for container %q on node %q", name, nodeName) @@ -491,7 +500,7 @@ func (r *resourceMonitor) LogCPUSummary() { buf := &bytes.Buffer{} w := tabwriter.NewWriter(buf, 1, 0, 1, ' ', 0) fmt.Fprintf(w, "%s\n", strings.Join(header, "\t")) - for _, containerName := range targetContainers { + for _, containerName := range targetContainers() { data := collector.GetBasicCPUStats(containerName) var s []string s = append(s, fmt.Sprintf("%q", containerName))