Merge "Update the postscriptbuild usage"
[releng.git] / jjb / functest / functest-k8.sh
1 #!/bin/bash
2
3 set -e
4 set +u
5 set +o pipefail
6
7 [[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
8 FUNCTEST_DIR=/home/opnfv/functest
9
10 rc_file=${HOME}/k8.creds
11 sudo rm -rf $rc_file
12
13 if [[ ${INSTALLER_TYPE} == 'compass' ]]; then
14     admin_conf_file_vol="-v ${HOME}/admin.conf:/root/.kube/config"
15     echo "export KUBECONFIG=/root/.kube/config" >> $rc_file
16     echo "export KUBERNETES_PROVIDER=local" >> $rc_file
17     KUBE_MASTER_URL=$(cat ${HOME}/admin.conf|grep server| awk '{print $2}')
18     echo "export KUBE_MASTER_URL=$KUBE_MASTER_URL" >> $rc_file
19     KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL|awk -F'https://|:[0-9]+' '$0=$2')
20     echo "export KUBE_MASTER_IP=$KUBE_MASTER_IP" >> $rc_file
21 else
22     echo "Not supported by other installers yet"
23     exit 1
24 fi
25
26 rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file"
27
28 dir_result="${HOME}/opnfv/functest/results/${BRANCH##*/}"
29 mkdir -p ${dir_result}
30 sudo rm -rf ${dir_result}/*
31 results_vol="-v ${dir_result}:${FUNCTEST_DIR}/results"
32
33 volumes="${rc_file_vol} ${results_vol} ${admin_conf_file_vol}"
34
35 # Set iptables rule to allow forwarding return traffic for container
36 if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
37     sudo iptables -I FORWARD -j RETURN
38 fi
39
40 envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} \
41     -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
42     -e BUILD_TAG=${BUILD_TAG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"
43
44 DOCKER_TAG=`[[ ${BRANCH##*/} == "master" ]] && echo "latest" || echo ${BRANCH##*/}`
45
46 FUNCTEST_IMAGE=opnfv/functest-kubernetes:${DOCKER_TAG}
47 docker pull ${FUNCTEST_IMAGE}>/dev/null
48 cmd_opt="run_tests -r -t all"
49 cmd="docker run --rm --privileged=true ${volumes} ${FUNCTEST_IMAGE} /bin/bash -c '${cmd_opt}'"
50 echo "Running Functest k8s test cases, CMD: ${cmd}"
51 eval ${cmd}
52 ret_value=$?
53 if [ ${ret_value} != 0 ]; then
54   echo ${ret_value} > ${ret_val_file}
55 fi