2014-06-13 19:35:03 +00:00
#!/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
2014-07-14 17:50:04 +00:00
source " ${ KUBE_REPO_ROOT } /cluster/kube-env.sh "
source " ${ KUBE_REPO_ROOT } /cluster/ $KUBERNETES_PROVIDER /util.sh "
2014-06-13 19:35:03 +00:00
# Launch a container
$CLOUDCFG -p 8080:80 run dockerfile/nginx 2 myNginx
2014-06-17 03:42:17 +00:00
function remove-quotes( ) {
local in = $1
stripped = " ${ in % \" } "
stripped = " ${ stripped # \" } "
echo $stripped
}
2014-07-30 20:33:47 +00:00
function teardown( ) {
echo "Cleaning up test artifacts"
$CLOUDCFG stop myNginx
$CLOUDCFG rm myNginx
}
trap "teardown" EXIT
2014-06-17 03:42:17 +00:00
POD_ID_LIST = $( $CLOUDCFG -json -l name = myNginx list pods | jq ".items[].id" )
2014-06-13 19:35:03 +00:00
# Container turn up on a clean cluster can take a while for the docker image pull.
2014-07-30 20:33:47 +00:00
ALL_RUNNING = 0
while [ $ALL_RUNNING -ne 1 ] ; do
echo "Waiting for all containers in pod to come up."
2014-06-17 03:42:17 +00:00
sleep 5
2014-07-30 20:33:47 +00:00
ALL_RUNNING = 1
2014-06-17 03:42:17 +00:00
for id in $POD_ID_LIST ; do
2014-07-30 20:33:47 +00:00
CURRENT_STATUS = $( remove-quotes $( $CLOUDCFG -json get " pods/ $( remove-quotes ${ id } ) " | jq '.currentState.info["mynginx"].State.Running and .currentState.info["net"].State.Running' ) )
if [ " $CURRENT_STATUS " != "true" ] ; then
ALL_RUNNING = 0
2014-06-17 03:42:17 +00:00
fi
done
done
2014-06-13 19:35:03 +00:00
# Get minion IP addresses
detect-minions
2014-07-30 20:33:47 +00:00
# let images stabilize
echo "Letting images stabilize"
sleep 5
2014-06-13 19:35:03 +00:00
# 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
exit 0