mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-30 21:30:16 +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