Merge pull request #5294 from piosz/guestbook_test
Improved guestbook.sh test to become actual test
This commit is contained in:
commit
a676a28fe3
@ -41,6 +41,36 @@ function teardown() {
|
||||
local REGION=${ZONE%-*}
|
||||
gcloud compute forwarding-rules delete -q --region ${REGION} "${INSTANCE_PREFIX}-default-frontend" || true
|
||||
gcloud compute target-pools delete -q --region ${REGION} "${INSTANCE_PREFIX}-default-frontend" || true
|
||||
gcloud compute firewall-rules delete guestbook-e2e-minion-8000 -q || true
|
||||
fi
|
||||
}
|
||||
|
||||
function wait_for_running() {
|
||||
echo "Waiting for pods to come up."
|
||||
local frontends master slaves pods all_running status i pod
|
||||
frontends=($(${KUBECTL} get pods -l name=frontend -o template '--template={{range.items}}{{.id}} {{end}}'))
|
||||
master=($(${KUBECTL} get pods -l name=redis-master -o template '--template={{range.items}}{{.id}} {{end}}'))
|
||||
slaves=($(${KUBECTL} get pods -l name=redis-slave -o template '--template={{range.items}}{{.id}} {{end}}'))
|
||||
pods=("${frontends[@]}" "${master[@]}" "${slaves[@]}")
|
||||
|
||||
all_running=0
|
||||
for i in {1..30}; do
|
||||
all_running=1
|
||||
for pod in "${pods[@]}"; do
|
||||
status=$(${KUBECTL} get pods "${pod}" -o template '--template={{.currentState.status}}') || true
|
||||
if [[ "$status" != "Running" ]]; then
|
||||
all_running=0
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [[ "${all_running}" == 1 ]]; then
|
||||
break
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
if [[ "${all_running}" == 0 ]]; then
|
||||
echo "Pods did not come up in time"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
@ -48,21 +78,40 @@ prepare-e2e
|
||||
|
||||
trap "teardown" EXIT
|
||||
|
||||
echo "WARNING: this test is a no op that only attempts to launch guestbook resources."
|
||||
# Launch the guestbook example
|
||||
${KUBECTL} create -f "${GUESTBOOK}"
|
||||
|
||||
sleep 15
|
||||
# Verify that all pods are running
|
||||
wait_for_running
|
||||
|
||||
POD_LIST_1=$(${KUBECTL} get pods -o template '--template={{range.items}}{{.id}} {{end}}')
|
||||
echo "Pods running: ${POD_LIST_1}"
|
||||
if [[ "${KUBERNETES_PROVIDER}" == "gce" ]]; then
|
||||
gcloud compute firewall-rules create --allow=tcp:8000 --network="${NETWORK}" --target-tags="${MINION_TAG}" guestbook-e2e-minion-8000
|
||||
fi
|
||||
|
||||
# TODO make this an actual test. Open up a firewall and use curl to post and
|
||||
# read a message via the frontend
|
||||
# Add a new entry to the guestbook and verify that it was remembered
|
||||
frontend_addr=$(${KUBECTL} get service frontend -o template '--template={{range .publicIPs}}{{.}}{{end}}:{{.port}}')
|
||||
echo "Waiting for frontend to serve content"
|
||||
serving=0
|
||||
for i in {1..12}; do
|
||||
entry=$(curl "http://${frontend_addr}/index.php?cmd=get&key=messages") || true
|
||||
echo ${entry}
|
||||
if [[ "${entry}" == '{"data": ""}' ]]; then
|
||||
serving=1
|
||||
break
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
if [[ "${serving}" == 0 ]]; then
|
||||
echo "Pods did not start serving content in time"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${KUBECTL} stop -f "${GUESTBOOK}"
|
||||
curl "http://${frontend_addr}/index.php?cmd=set&key=messages&value=TestEntry"
|
||||
entry=$(curl "http://${frontend_addr}/index.php?cmd=get&key=messages")
|
||||
|
||||
POD_LIST_2=$(${KUBECTL} get pods -o template '--template={{range.items}}{{.id}} {{end}}')
|
||||
echo "Pods running after shutdown: ${POD_LIST_2}"
|
||||
if [[ "${entry}" != '{"data": "TestEntry"}' ]]; then
|
||||
echo "Wrong entry received: ${entry}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user