mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Merge pull request #99 from lavalamp/improve_e2e
Improve e2e (improve #3)
This commit is contained in:
		@@ -16,7 +16,7 @@
 | 
				
			|||||||
ZONE=us-central1-b
 | 
					ZONE=us-central1-b
 | 
				
			||||||
MASTER_SIZE=g1-small
 | 
					MASTER_SIZE=g1-small
 | 
				
			||||||
MINION_SIZE=g1-small
 | 
					MINION_SIZE=g1-small
 | 
				
			||||||
NUM_MINIONS=2
 | 
					NUM_MINIONS=3
 | 
				
			||||||
# gcloud/gcutil will expand this to the latest supported image.
 | 
					# gcloud/gcutil will expand this to the latest supported image.
 | 
				
			||||||
IMAGE=backports-debian-7-wheezy
 | 
					IMAGE=backports-debian-7-wheezy
 | 
				
			||||||
NETWORK=default
 | 
					NETWORK=default
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										47
									
								
								hack/e2e-suite/basic.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										47
									
								
								hack/e2e-suite/basic.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,47 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Copyright 2014 Google Inc. 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Launches an nginx container and verifies it can be reached. Assumes that
 | 
				
			||||||
 | 
					# we're being called by hack/e2e-test.sh (we use some env vars it sets up).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Exit on error
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source "${KUBE_REPO_ROOT}/cluster/util.sh"
 | 
				
			||||||
 | 
					detect-project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Launch a container
 | 
				
			||||||
 | 
					$CLOUDCFG -p 8080:80 run dockerfile/nginx 2 myNginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Container turn up on a clean cluster can take a while for the docker image pull.
 | 
				
			||||||
 | 
					# Sleep for 2 minutes just to be sure.
 | 
				
			||||||
 | 
					echo "Waiting for containers to come up."
 | 
				
			||||||
 | 
					sleep 120
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Get minion IP addresses
 | 
				
			||||||
 | 
					detect-minions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Verify that something is listening (nginx should give us a 404)
 | 
				
			||||||
 | 
					for (( i=0; i<${#KUBE_MINION_IP_ADDRESSES[@]}; i++)); do
 | 
				
			||||||
 | 
					  IP_ADDRESS=${KUBE_MINION_IP_ADDRESSES[$i]}
 | 
				
			||||||
 | 
					  echo "Trying to reach nginx instance that should be running at ${IP_ADDRESS}:8080..."
 | 
				
			||||||
 | 
					  curl "http://${IP_ADDRESS}:8080"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$CLOUDCFG stop myNginx
 | 
				
			||||||
 | 
					$CLOUDCFG rm myNginx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit 0
 | 
				
			||||||
@@ -14,7 +14,7 @@
 | 
				
			|||||||
# See the License for the specific language governing permissions and
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
# limitations under the License.
 | 
					# limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Starts a Kubernetes cluster, verifies it can do basic things, and shuts it
 | 
					# Starts a Kubernetes cluster, runs the e2e test suite, and shuts it
 | 
				
			||||||
# down.
 | 
					# down.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Exit on error
 | 
					# Exit on error
 | 
				
			||||||
@@ -22,7 +22,10 @@ set -e
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Use testing config
 | 
					# Use testing config
 | 
				
			||||||
export KUBE_CONFIG_FILE="config-test.sh"
 | 
					export KUBE_CONFIG_FILE="config-test.sh"
 | 
				
			||||||
source $(dirname $0)/../cluster/util.sh
 | 
					export KUBE_REPO_ROOT="$(dirname $0)/.."
 | 
				
			||||||
 | 
					export CLOUDCFG="${KUBE_REPO_ROOT}/cluster/cloudcfg.sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					source "${KUBE_REPO_ROOT}/cluster/util.sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Build a release
 | 
					# Build a release
 | 
				
			||||||
$(dirname $0)/../release/release.sh
 | 
					$(dirname $0)/../release/release.sh
 | 
				
			||||||
@@ -30,6 +33,21 @@ $(dirname $0)/../release/release.sh
 | 
				
			|||||||
# Now bring a test cluster up with that release.
 | 
					# Now bring a test cluster up with that release.
 | 
				
			||||||
$(dirname $0)/../cluster/kube-up.sh
 | 
					$(dirname $0)/../cluster/kube-up.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Detect the project into $PROJECT if it isn't set
 | 
				
			||||||
 | 
					detect-project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set +e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Open up port 80 & 8080 so common containers on minions can be reached
 | 
				
			||||||
 | 
					gcutil addfirewall \
 | 
				
			||||||
 | 
					  --norespect_terminal_width \
 | 
				
			||||||
 | 
					  --project ${PROJECT} \
 | 
				
			||||||
 | 
					  --target_tags ${MINION_TAG} \
 | 
				
			||||||
 | 
					  --allowed tcp:80 \
 | 
				
			||||||
 | 
					  --allowed tcp:8080 \
 | 
				
			||||||
 | 
					  --network ${NETWORK} \
 | 
				
			||||||
 | 
					  ${MINION_TAG}-http-alt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Auto shutdown cluster when we exit
 | 
					# Auto shutdown cluster when we exit
 | 
				
			||||||
function shutdown-test-cluster () {
 | 
					function shutdown-test-cluster () {
 | 
				
			||||||
  echo "Shutting down test cluster in background."
 | 
					  echo "Shutting down test cluster in background."
 | 
				
			||||||
@@ -42,33 +60,15 @@ function shutdown-test-cluster () {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
trap shutdown-test-cluster EXIT
 | 
					trap shutdown-test-cluster EXIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Detect the project into $PROJECT if it isn't set
 | 
					any_failed=0
 | 
				
			||||||
detect-project
 | 
					for test_file in "$(dirname $0)/e2e-suite/*.sh"; do
 | 
				
			||||||
 | 
					  $test_file
 | 
				
			||||||
# Open up port 8080 so nginx containers on minions can be reached
 | 
					  if [[ -z $? ]]; then
 | 
				
			||||||
gcutil addfirewall \
 | 
					    echo "${test_file}: passed!"
 | 
				
			||||||
  --norespect_terminal_width \
 | 
					  else
 | 
				
			||||||
  --project ${PROJECT} \
 | 
					    echo "${test_file}: FAILED!"
 | 
				
			||||||
  --target_tags ${MINION_TAG} \
 | 
					    any_failed=1
 | 
				
			||||||
  --allowed tcp:8080 \
 | 
					  fi
 | 
				
			||||||
  --network ${NETWORK} \
 | 
					 | 
				
			||||||
  ${MINION_TAG}-http-alt &
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Launch a container
 | 
					 | 
				
			||||||
$(dirname $0)/../cluster/cloudcfg.sh -p 8080:80 run dockerfile/nginx 2 myNginx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Container turn up on a clean cluster can take a while for the docker image pull.
 | 
					 | 
				
			||||||
# Sleep for 2 minutes just to be sure.
 | 
					 | 
				
			||||||
echo "Waiting for containers to come up."
 | 
					 | 
				
			||||||
sleep 120
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Get minion IP addresses
 | 
					 | 
				
			||||||
detect-minions
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Verify that something is listening (nginx should give us a 404)
 | 
					 | 
				
			||||||
for (( i=0; i<${#KUBE_MINION_IP_ADDRESSES[@]}; i++)); do
 | 
					 | 
				
			||||||
  IP_ADDRESS=${KUBE_MINION_IP_ADDRESSES[$i]}
 | 
					 | 
				
			||||||
  echo "Trying to reach nginx instance that should be running at ${IP_ADDRESS}:8080..."
 | 
					 | 
				
			||||||
  curl "http://${IP_ADDRESS}:8080"
 | 
					 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exit ${any_failed}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user