[functest] Get passed DOCKER_TAG for K8s scenarios
[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 KUBERNETES_PROVIDER=local" >> $rc_file
16     KUBE_MASTER_URL=$(cat ${HOME}/admin.conf|grep server| awk '{print $2}')
17     echo "export KUBE_MASTER_URL=$KUBE_MASTER_URL" >> $rc_file
18     KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL|awk -F'https://|:[0-9]+' '$0=$2')
19     echo "export KUBE_MASTER_IP=$KUBE_MASTER_IP" >> $rc_file
20 elif [[ ${INSTALLER_TYPE} == 'joid' && ${BRANCH} == 'master' ]]; then
21     admin_conf_file_vol="-v ${HOME}/joid_config/config:/root/.kube/config"
22     rc_file=${HOME}/joid_config/k8config
23 elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then
24     admin_conf_file_vol="-v ${HOME}/admin.conf:/root/.kube/config"
25     KUBE_MASTER_URL=$(awk '/server:/ {print $2}' ${HOME}/admin.conf | grep -Fv localhost)
26     KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL | grep -Po '(\d+\.){3}\d+')
27     for k in KUBE_MASTER_URL KUBE_MASTER_IP; do
28         echo "export $k=${!k}" >> $rc_file
29     done
30 else
31     echo "Not supported by other installers yet"
32     exit 1
33 fi
34
35 rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file"
36
37 dir_result="${HOME}/opnfv/functest/results/${BRANCH##*/}"
38 mkdir -p ${dir_result}
39 sudo rm -rf ${dir_result}/*
40 results_vol="-v ${dir_result}:${FUNCTEST_DIR}/results"
41
42 volumes="${rc_file_vol} ${results_vol} ${admin_conf_file_vol}"
43
44 envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} \
45     -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
46     -e BUILD_TAG=${BUILD_TAG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"
47
48 DOCKER_TAG=${DOCKER_TAG:-$([[ ${BRANCH##*/} == "master" ]] && echo "latest" || echo ${BRANCH##*/})}
49
50 set +e
51
52 ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
53 echo 0 > ${ret_val_file}
54
55 FUNCTEST_IMAGES="\
56 opnfv/functest-kubernetes-healthcheck:${DOCKER_TAG} \
57 opnfv/functest-kubernetes-smoke:${DOCKER_TAG} \
58 opnfv/functest-kubernetes-features:${DOCKER_TAG}"
59 cmd_opt="run_tests -r -t all"
60
61 for image in ${FUNCTEST_IMAGES}; do
62     echo "Pulling Docker image ${image} ..."
63     docker pull "${image}" >/dev/null
64     cmd="docker run --rm ${envs} ${volumes} ${image} /bin/bash -c '${cmd_opt}'"
65     echo "Running Functest k8s test cases, CMD: ${cmd}"
66     eval ${cmd}
67     ret_value=$?
68     if [ ${ret_value} != 0 ]; then
69         echo ${ret_value} > ${ret_val_file}
70     fi
71 done