From 2486331d341a47dd3b0707406e3add3e06144095 Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Mon, 1 Dec 2014 21:55:21 -0800 Subject: [PATCH] Add an e2e case for public IPs --- hack/e2e-suite/services.sh | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/hack/e2e-suite/services.sh b/hack/e2e-suite/services.sh index eb8e5f08990..96bd1e17ded 100755 --- a/hack/e2e-suite/services.sh +++ b/hack/e2e-suite/services.sh @@ -33,6 +33,20 @@ function sort_args() { printf "%s\n" "$@" | sort -n | tr '\n\r' ' ' | sed 's/ */ /g' } +# Join args $2... with $1 between them. +# Example: join ", " x y z => x, y, z +function join() { + local sep item + sep=$1 + shift + echo -n "${1:-}" + shift + for item; do + echo -n "${sep}${item}" + done + echo +} + svcs_to_clean=() function do_teardown() { local svc @@ -45,6 +59,7 @@ function do_teardown() { # $1: service name # $2: service port # $3: service replica count +# $4: public IPs (optional, string e.g. "1.2.3.4 5.6.7.8") function start_service() { echo "Starting service '$1' on port $2 with $3 replicas" svcs_to_clean+=("$1") @@ -84,6 +99,12 @@ function start_service() { } } __EOF__ + # Convert '1.2.3.4 5.6.7.8' => '"1.2.3.4", "5.6.7.8"' + local ip ips_array=() public_ips + for ip in ${4:-}; do + ips_array+=("\"${ip}\"") + done + public_ips=$(join ", " "${ips_array[@]:+${ips_array[@]}}") ${KUBECTL} create -f - << __EOF__ { "kind": "Service", @@ -99,6 +120,7 @@ __EOF__ "name": "$1" }, "containerPort": 9376, + "publicIPs": [ ${public_ips} ] } __EOF__ } @@ -249,7 +271,8 @@ master="${MASTER_NAME}" svc1_name="service1" svc1_port=80 svc1_count=3 -start_service "${svc1_name}" "${svc1_port}" "${svc1_count}" +svc1_publics="192.168.1.1 192.168.1.2" +start_service "${svc1_name}" "${svc1_port}" "${svc1_count}" "${svc1_publics}" svc2_name="service2" svc2_port=80 @@ -279,11 +302,19 @@ fi echo "Verifying the portals from the host" wait_for_service_up "${svc1_name}" "${svc1_ip}" "${svc1_port}" \ "${svc1_count}" "${svc1_pods}" +for ip in ${svc1_publics}; do + wait_for_service_up "${svc1_name}" "${ip}" "${svc1_port}" \ + "${svc1_count}" "${svc1_pods}" +done wait_for_service_up "${svc2_name}" "${svc2_ip}" "${svc2_port}" \ "${svc2_count}" "${svc2_pods}" echo "Verifying the portals from a container" verify_from_container "${svc1_name}" "${svc1_ip}" "${svc1_port}" \ "${svc1_count}" "${svc1_pods}" +for ip in ${svc1_publics}; do + verify_from_container "${svc1_name}" "${ip}" "${svc1_port}" \ + "${svc1_count}" "${svc1_pods}" +done verify_from_container "${svc2_name}" "${svc2_ip}" "${svc2_port}" \ "${svc2_count}" "${svc2_pods}"