Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

E2E cleanup #21430

Merged
merged 2 commits into from Feb 21, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion cluster/aws/util.sh
Expand Up @@ -1443,11 +1443,13 @@ function test-build-release {
}

# Execute prior to running tests to initialize required structure. This is
# called from hack/e2e.go only when running -up (it is run after kube-up).
# called from hack/e2e.go only when running -up.
#
# Assumed vars:
# Variables from config.sh
function test-setup {
"${KUBE_ROOT}/cluster/kube-up.sh"

VPC_ID=$(get_vpc_id)
detect-security-groups

Expand Down
12 changes: 11 additions & 1 deletion cluster/gce/util.sh
Expand Up @@ -1192,14 +1192,24 @@ function test-build-release {
}

# Execute prior to running tests to initialize required structure. This is
# called from hack/e2e.go only when running -up (it is run after kube-up).
# called from hack/e2e.go only when running -up.
#
# Assumed vars:
# Variables from config.sh
function test-setup {
# Detect the project into $PROJECT if it isn't set
detect-project

if [[ ${MULTIZONE:-} == "true" ]]; then
for KUBE_GCE_ZONE in ${E2E_ZONES}
do
KUBE_GCE_ZONE="${KUBE_GCE_ZONE}" KUBE_USE_EXISTING_MASTER="${KUBE_USE_EXISTING_MASTER:-}" "${KUBE_ROOT}/cluster/kube-up.sh"
KUBE_USE_EXISTING_MASTER="true" # For subsequent zones we use the existing master
done
else
"${KUBE_ROOT}/cluster/kube-up.sh"
fi

# Open up port 80 & 8080 so common containers on minions can be reached
# TODO(roberthbailey): Remove this once we are no longer relying on hostPorts.
local start=`date +%s`
Expand Down
5 changes: 4 additions & 1 deletion cluster/gke/util.sh
Expand Up @@ -167,8 +167,11 @@ function test-setup() {
echo "... in gke:test-setup()" >&2
# Detect the project into $PROJECT if it isn't set
detect-project >&2
detect-nodes >&2

"${KUBE_ROOT}/cluster/kube-up.sh"

detect-nodes >&2

# At this point, CLUSTER_NAME should have been used, so its value is final.
NODE_TAG=$($GCLOUD compute instances describe ${NODE_NAMES[0]} --project="${PROJECT}" --zone="${ZONE}" | grep -o "gke-${CLUSTER_NAME}-.\{8\}-node" | head -1)
OLD_NODE_TAG="k8s-${CLUSTER_NAME}-node"
Expand Down
4 changes: 2 additions & 2 deletions cluster/juju/util.sh
Expand Up @@ -165,9 +165,9 @@ function test-build-release {
}

# Execute prior to running tests to initialize required structure. This is
# called from hack/e2e.go only when running -up (it is run after kube-up).
# called from hack/e2e.go only when running -up.
function test-setup {
echo "test-setup() " 1>&2
"${KUBE_ROOT}/cluster/kube-up.sh"
}

# Execute after running tests to perform any required clean-up. This is called
Expand Down
2 changes: 1 addition & 1 deletion cluster/libvirt-coreos/util.sh
Expand Up @@ -316,7 +316,7 @@ function test-build-release {

# Execute prior to running tests to initialize required structure
function test-setup {
echo "TODO"
"${KUBE_ROOT}/cluster/kube-up.sh"
}

# Execute after running tests to perform any required clean-up
Expand Down
3 changes: 2 additions & 1 deletion cluster/mesos/docker/util.sh
Expand Up @@ -317,7 +317,8 @@ function kube-down {
}

function test-setup {
echo "TODO: test-setup" 1>&2
echo "test-setup" 1>&2
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why'd you keep this echo but not the one in juju?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It has echo "test-teardown" 1>&2 in test-teardown, but the juju one doesn't.

"${KUBE_ROOT}/cluster/kube-up.sh"
}

# Execute after running tests to perform any required clean-up
Expand Down
1 change: 1 addition & 0 deletions cluster/vagrant/util.sh
Expand Up @@ -317,6 +317,7 @@ function test-build-release {

# Execute prior to running tests to initialize required structure
function test-setup {
"${KUBE_ROOT}/cluster/kube-up.sh"
echo "Vagrant test setup complete" 1>&2
}

Expand Down
10 changes: 0 additions & 10 deletions hack/e2e-internal/e2e-up.sh
Expand Up @@ -31,14 +31,4 @@ source "${KUBE_VERSION_ROOT}/cluster/${KUBERNETES_PROVIDER}/util.sh"

prepare-e2e

if [[ ${MULTIZONE:-} == "true" ]]; then
for KUBE_GCE_ZONE in ${E2E_ZONES}
do
KUBE_GCE_ZONE="${KUBE_GCE_ZONE}" KUBE_USE_EXISTING_MASTER="${KUBE_USE_EXISTING_MASTER:-}" KUBE_TEST_DEBUG=y "${KUBE_VERSION_ROOT}/cluster/kube-up.sh"
KUBE_USE_EXISTING_MASTER="true" # For subsequent zones we use the existing master
done
else
KUBE_TEST_DEBUG=y "${KUBE_VERSION_ROOT}/cluster/kube-up.sh"
fi

test-setup
44 changes: 1 addition & 43 deletions hack/e2e.go
Expand Up @@ -18,12 +18,10 @@ limitations under the License.
package main

import (
"bytes"
"flag"
"fmt"
"io"
"log"
"math/rand"
"net/http"
"os"
"os/exec"
Expand Down Expand Up @@ -124,6 +122,7 @@ func main() {
}

os.Setenv("KUBECTL", versionRoot+`/cluster/kubectl.sh`+kubectlArgs())
os.Setenv("KUBE_TEST_DEBUG", "y")

if *pushup {
if IsUp() {
Expand Down Expand Up @@ -177,7 +176,6 @@ func Up() bool {
return false
}
}

return finishRunning("up", exec.Command(path.Join(*root, "hack/e2e-internal/e2e-up.sh")))
}

Expand Down Expand Up @@ -256,14 +254,6 @@ func PrepareVersion(version string) (string, error) {
return localReleaseDir, nil
}

// Fisher-Yates shuffle using the given RNG r
func shuffleStrings(strings []string, r *rand.Rand) {
for i := len(strings) - 1; i > 0; i-- {
j := r.Intn(i + 1)
strings[i], strings[j] = strings[j], strings[i]
}
}

func Test() bool {
if !IsUp() {
log.Fatal("Testing requested, but e2e cluster not up!")
Expand All @@ -274,25 +264,6 @@ func Test() bool {
return finishRunning("Ginkgo tests", exec.Command(filepath.Join(*root, "hack/ginkgo-e2e.sh"), strings.Fields(*testArgs)...))
}

// All nonsense below is temporary until we have go versions of these things.

// call the returned anonymous function to stop.
func runBashUntil(stepName string, cmd *exec.Cmd) func() {
log.Printf("Running in background: %v", stepName)
output := bytes.NewBuffer(nil)
cmd.Stdout, cmd.Stderr = output, output
if err := cmd.Start(); err != nil {
log.Printf("Unable to start '%v': '%v'", stepName, err)
return func() {}
}
return func() {
cmd.Process.Signal(os.Interrupt)
headerprefix := stepName + " "
lineprefix := " "
printBashOutputs(headerprefix, lineprefix, string(output.Bytes()), false)
}
}

func finishRunning(stepName string, cmd *exec.Cmd) bool {
if *verbose {
cmd.Stdout = os.Stdout
Expand All @@ -310,19 +281,6 @@ func finishRunning(stepName string, cmd *exec.Cmd) bool {
return true
}

func printBashOutputs(headerprefix, lineprefix, output string, escape bool) {
if output != "" {
fmt.Printf("%voutput: |\n", headerprefix)
printPrefixedLines(lineprefix, output)
}
}

func printPrefixedLines(prefix, s string) {
for _, line := range strings.Split(s, "\n") {
fmt.Printf("%v%v\n", prefix, line)
}
}

// returns either "", or a list of args intended for appending with the
// kubectl command (beginning with a space).
func kubectlArgs() string {
Expand Down