mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Copyright 2015 The Kubernetes Authors All rights reserved.
 | 
						|
#
 | 
						|
# Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
# you may not use this file except in compliance with the License.
 | 
						|
# You may obtain a copy of the License at
 | 
						|
#
 | 
						|
#     http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
# Unless required by applicable law or agreed to in writing, software
 | 
						|
# distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
# See the License for the specific language governing permissions and
 | 
						|
# limitations under the License.
 | 
						|
 | 
						|
set -o errexit
 | 
						|
set -o nounset
 | 
						|
set -o pipefail
 | 
						|
 | 
						|
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
 | 
						|
 | 
						|
function down-clusters {
 | 
						|
  for count in $(seq 1 ${clusters}); do
 | 
						|
    export KUBE_GCE_INSTANCE_PREFIX=e2e-test-${USER}-${count}
 | 
						|
    local cluster_dir=${KUBE_ROOT}/_output/e2e/${KUBE_GCE_INSTANCE_PREFIX}
 | 
						|
    export KUBECONFIG=${cluster_dir}/.kubeconfig
 | 
						|
    go run ${KUBE_ROOT}/hack/e2e.go -down -v &
 | 
						|
  done
 | 
						|
 | 
						|
  wait
 | 
						|
}
 | 
						|
 | 
						|
function up-clusters {
 | 
						|
  for count in $(seq 1 ${clusters}); do
 | 
						|
    export KUBE_GCE_INSTANCE_PREFIX=e2e-test-${USER}-${count}
 | 
						|
    export CLUSTER_IP_RANGE="10.$((${count}*2-1)).0.0/16"
 | 
						|
    export MASTER_IP_RANGE="10.$((${count}*2)).0.0/24"
 | 
						|
 | 
						|
    local cluster_dir=${KUBE_ROOT}/_output/e2e/${KUBE_GCE_INSTANCE_PREFIX}
 | 
						|
    mkdir -p ${cluster_dir}
 | 
						|
    export KUBECONFIG=${cluster_dir}/.kubeconfig
 | 
						|
    go run hack/e2e.go -up -v 2>&1 | tee ${cluster_dir}/up.log &
 | 
						|
  done
 | 
						|
 | 
						|
  fail=0
 | 
						|
  for job in $(jobs -p); do
 | 
						|
    wait "${job}" || fail=$((fail + 1))
 | 
						|
  done
 | 
						|
 | 
						|
  if (( fail != 0 )); then
 | 
						|
    echo "${fail} cluster creation failures. Not continuing with tests."
 | 
						|
    exit 1
 | 
						|
  fi
 | 
						|
}
 | 
						|
 | 
						|
function run-tests {
 | 
						|
  for count in $(seq 1 ${clusters}); do
 | 
						|
    export KUBE_GCE_INSTANCE_PREFIX=e2e-test-${USER}-${count}
 | 
						|
 | 
						|
    local cluster_dir=${KUBE_ROOT}/_output/e2e/${KUBE_GCE_INSTANCE_PREFIX}
 | 
						|
    export KUBECONFIG=${cluster_dir}/.kubeconfig
 | 
						|
    export E2E_REPORT_DIR=${cluster_dir}
 | 
						|
    go run hack/e2e.go -test --test_args="--ginkgo.noColor" "${@:-}" -down 2>&1 | tee ${cluster_dir}/e2e.log &
 | 
						|
  done
 | 
						|
 | 
						|
  wait
 | 
						|
}
 | 
						|
 | 
						|
# Outputs something like:
 | 
						|
# _output/e2e/e2e-test-zml-5/junit.xml
 | 
						|
#   FAIL: Shell tests that services.sh passes
 | 
						|
function post-process {
 | 
						|
  echo $1
 | 
						|
  cat $1 | python -c '
 | 
						|
import sys
 | 
						|
from xml.dom.minidom import parse
 | 
						|
 | 
						|
failed = False
 | 
						|
for testcase in parse(sys.stdin).getElementsByTagName("testcase"):
 | 
						|
  if len(testcase.getElementsByTagName("failure")) != 0:
 | 
						|
    failed = True
 | 
						|
    print "  FAIL: {test}".format(test = testcase.getAttribute("name"))
 | 
						|
if not failed:
 | 
						|
  print "  SUCCESS!"
 | 
						|
'
 | 
						|
}
 | 
						|
 | 
						|
function print-results {
 | 
						|
  for count in $(seq 1 ${clusters}); do
 | 
						|
    for junit in ${KUBE_ROOT}/_output/e2e/e2e-test-${USER}-${count}/junit*.xml; do
 | 
						|
      post-process ${junit}
 | 
						|
    done
 | 
						|
  done
 | 
						|
}
 | 
						|
 | 
						|
if [[ ${KUBERNETES_PROVIDER:-gce} != "gce" ]]; then
 | 
						|
  echo "$0 not supported on ${KUBERNETES_PROVIDER} yet" >&2
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
readonly clusters=${1:-}
 | 
						|
 | 
						|
if ! [[ "${clusters}" =~ ^[0-9]+$ ]]; then
 | 
						|
  echo "Usage: ${0} <number of clusters> [options to hack/e2e.go]" >&2
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
shift 1
 | 
						|
 | 
						|
rm -rf _output/e2e
 | 
						|
down-clusters
 | 
						|
up-clusters
 | 
						|
run-tests "${@:-}"
 | 
						|
print-results
 |