From 94e2f11ea6d4c76538c2c6d218f1668ffc56548a Mon Sep 17 00:00:00 2001 From: smruthi2187 <34555664+smruthi2187@users.noreply.github.com> Date: Fri, 20 Apr 2018 19:00:22 -0700 Subject: [PATCH] Remove port forward in tests for router, controller and nats pods (#611) --- test/build_and_test.sh | 5 +-- test/test_utils.sh | 54 +++++++++++++++++++++++++------ test/tests/test_archive_pruner.sh | 16 ++------- 3 files changed, 49 insertions(+), 26 deletions(-) diff --git a/test/build_and_test.sh b/test/build_and_test.sh index 08ce335c..73d92b96 100755 --- a/test/build_and_test.sh +++ b/test/build_and_test.sh @@ -17,7 +17,8 @@ FLUENTD_IMAGE=gcr.io/fission-ci/fluentd BUILDER_IMAGE=$REPO/builder TAG=test PRUNE_INTERVAL=1 # this variable controls the interval to run archivePruner. The unit is in minutes. -ROUTER_SERVICE_TYPE=ClusterIP +ROUTER_SERVICE_TYPE=LoadBalancer +SERVICE_TYPE=LoadBalancer dump_system_info @@ -37,4 +38,4 @@ build_and_push_fluentd $FLUENTD_IMAGE:$TAG build_fission_cli -install_and_test $IMAGE $TAG $FETCHER_IMAGE $TAG $FLUENTD_IMAGE $TAG $PRUNE_INTERVAL $ROUTER_SERVICE_TYPE +install_and_test $IMAGE $TAG $FETCHER_IMAGE $TAG $FLUENTD_IMAGE $TAG $PRUNE_INTERVAL $ROUTER_SERVICE_TYPE $SERVICE_TYPE diff --git a/test/test_utils.sh b/test/test_utils.sh index 052c7b92..8b6c2965 100755 --- a/test/test_utils.sh +++ b/test/test_utils.sh @@ -148,6 +148,18 @@ clean_tpr_crd_resources() { kubectl --namespace default get crd| grep -v NAME| grep "fission.io"| awk '{print $1}'|xargs -I@ bash -c "kubectl --namespace default delete crd @" || true } +set_environment() { + id=$1 + ns=f-$id + + export FISSION_URL=http://$(kubectl -n $ns get svc controller -o jsonpath='{...ip}') + export FISSION_ROUTER=$(kubectl -n $ns get svc router -o jsonpath='{...ip}') + export FISSION_NATS_STREAMING_URL="http://defaultFissionAuthToken@$(kubectl -n $ns get svc nats-streaming -o jsonpath='{...ip}:{.spec.ports[0].port}')" + + # set path to include cli + export PATH=$ROOT/fission:$PATH +} + generate_test_id() { echo $(date|md5sum|cut -c1-6) } @@ -164,11 +176,12 @@ helm_install_fission() { fluentdImageTag=${9} pruneInterval="${10}" routerServiceType=${11} + serviceType=${12} ns=f-$id fns=f-func-$id - helmVars=image=$image,imageTag=$imageTag,fetcherImage=$fetcherImage,fetcherImageTag=$fetcherImageTag,functionNamespace=$fns,controllerPort=$controllerNodeport,routerPort=$routerNodeport,pullPolicy=Always,analytics=false,logger.fluentdImage=$fluentdImage,logger.fluentdImageTag=$fluentdImageTag,pruneInterval=$pruneInterval,routerServiceType=$routerServiceType + helmVars=image=$image,imageTag=$imageTag,fetcherImage=$fetcherImage,fetcherImageTag=$fetcherImageTag,functionNamespace=$fns,controllerPort=$controllerNodeport,routerPort=$routerNodeport,pullPolicy=Always,analytics=false,logger.fluentdImage=$fluentdImage,logger.fluentdImageTag=$fluentdImageTag,pruneInterval=$pruneInterval,routerServiceType=$routerServiceType,serviceType=$serviceType timeout 30 bash -c "helm_setup" @@ -215,6 +228,32 @@ dump_tiller_logs() { } export -f dump_tiller_logs +wait_for_service() { + id=$1 + svc=$2 + + ns=f-$id + while true + do + ip=$(kubectl -n $ns get svc $svc -o jsonpath='{...ip}') + if [ ! -z $ip ] + then + break + fi + echo Waiting for service $svc... + sleep 1 + done +} + +wait_for_services() { + id=$1 + + wait_for_service $id controller + wait_for_service $id router + + echo Waiting for service is routable... + sleep 10 +} helm_uninstall_fission() {(set +e id=$1 @@ -427,6 +466,7 @@ install_and_test() { fluentdImageTag=$6 pruneInterval=$7 routerServiceType=$8 + serviceType=$9 controllerPort=31234 routerPort=31235 @@ -435,7 +475,7 @@ install_and_test() { id=$(generate_test_id) trap "helm_uninstall_fission $id" EXIT - helm_install_fission $id $image $imageTag $fetcherImage $fetcherImageTag $controllerPort $routerPort $fluentdImage $fluentdImageTag $pruneInterval $routerServiceType + helm_install_fission $id $image $imageTag $fetcherImage $fetcherImageTag $controllerPort $routerPort $fluentdImage $fluentdImageTag $pruneInterval $routerServiceType $serviceType helm status $id | grep STATUS | grep -i deployed if [ $? -ne 0 ]; then describe_all_pods $id @@ -444,14 +484,8 @@ install_and_test() { exit 1 fi - export PATH=$ROOT/fission:$PATH - - port_forward_services $id "router" 8888 - port_forward_services $id "nats-streaming" 4222 - - export FISSION_ROUTER="127.0.0.1:8888" - export FISSION_NATS_STREAMING_URL="http://defaultFissionAuthToken@127.0.0.1:4222" - + wait_for_services $id + set_environment $id run_all_tests $id dump_logs $id diff --git a/test/tests/test_archive_pruner.sh b/test/tests/test_archive_pruner.sh index 7b2cd985..9e77980b 100755 --- a/test/tests/test_archive_pruner.sh +++ b/test/tests/test_archive_pruner.sh @@ -14,7 +14,6 @@ cleanup() { if [ -e "/tmp/file" ]; then rm -rf /tmp/file fi - ps aux | grep -i "kubectl port-forward controller" | awk {'print $2'} | xargs kill -9 || true } create_archive() { @@ -40,18 +39,10 @@ get_archive_url_from_package() { url=`kubectl get package $1 -ojsonpath='{.spec.deployment.url}'` } -port_forward_controller_pod() { - log "Trying to port forward controller pod" - controller_pod=`kubectl get pods -n $FISSION_NAMESPACE| grep controller| tr -s " "| cut -d" " -f1` - controller_port=`kubectl get svc controller -n $FISSION_NAMESPACE -ojsonpath='{.spec.ports[0].targetPort}'` - log "controller pod: $controller_pod, controller port : $controller_port" - kubectl port-forward $controller_pod 9999:8888 -n $FISSION_NAMESPACE & - sleep 4 -} - get_archive_from_storage() { storage_service_url=$1 - controller_proxy_url=`echo $storage_service_url | sed -e "s/storagesvc.$FISSION_NAMESPACE/127.0.0.1:9999\/proxy\/storage/"` + controller_ip=$(kubectl -n $FISSION_NAMESPACE get svc controller -o jsonpath='{...ip}') + controller_proxy_url=`echo $storage_service_url | sed -e "s/storagesvc.$FISSION_NAMESPACE/$controller_ip\/proxy\/storage/"` log "controller_proxy_url=$controller_proxy_url" http_status=`curl -sw "%{http_code}" $controller_proxy_url -o /tmp/file` echo "http_status: $http_status" @@ -90,9 +81,6 @@ main() { delete_package $pkg_2 log "deleted packages : $pkg_1 $pkg_2" - # port forward controller pod - port_forward_controller_pod - # curl on the archive url get_archive_from_storage $url_1 log "http_status for $url_1 : $http_status"