From 3d66c3be825b1f23dc468944216d2c7e871d1761 Mon Sep 17 00:00:00 2001 From: Zach Loafman Date: Tue, 31 May 2016 17:24:33 -0700 Subject: [PATCH] SSH e2e: Limit to 100 nodes, limit combinatorics This limits the "for all hosts" to 100 nodes, and also limits the combinatorial section so that we only do the other SSH command variant testing on the first host rather than *all* of the hosts. I also killed one of the variants because it didn't seem to be testing much important. Fixes #26600 --- test/e2e/ssh.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/test/e2e/ssh.go b/test/e2e/ssh.go index 3da59417a2..0a6896b66c 100644 --- a/test/e2e/ssh.go +++ b/test/e2e/ssh.go @@ -25,6 +25,8 @@ import ( . "github.com/onsi/ginkgo" ) +const maxNodes = 100 + var _ = framework.KubeDescribe("SSH", func() { f := framework.NewDefaultFramework("ssh") @@ -50,17 +52,27 @@ var _ = framework.KubeDescribe("SSH", func() { expectedCode int expectedError error }{ - {`echo "Hello"`, true, "Hello", "", 0, nil}, - // Same as previous, but useful for test output diagnostics. + // Keep this test first - this variant runs on all nodes. {`echo "Hello from $(whoami)@$(hostname)"`, false, "", "", 0, nil}, {`echo "foo" | grep "bar"`, true, "", "", 1, nil}, {`echo "Out" && echo "Error" >&2 && exit 7`, true, "Out", "Error", 7, nil}, } - // Run commands on all nodes via SSH. - for _, testCase := range testCases { - By(fmt.Sprintf("SSH'ing to all nodes and running %s", testCase.cmd)) - for _, host := range hosts { + for i, testCase := range testCases { + // Only run the first testcase against max 100 nodes. Run + // the rest against the first node we find only, since + // they're basically testing SSH semantics (and we don't + // need to do that against each host in the cluster). + nodes := len(hosts) + if i > 0 { + nodes = 1 + } else if nodes > maxNodes { + nodes = maxNodes + } + testhosts := hosts[:nodes] + By(fmt.Sprintf("SSH'ing to %d nodes and running %s", len(testhosts), testCase.cmd)) + + for _, host := range testhosts { result, err := framework.SSH(testCase.cmd, host, framework.TestContext.Provider) stdout, stderr := strings.TrimSpace(result.Stdout), strings.TrimSpace(result.Stderr) if err != testCase.expectedError {