summaryrefslogtreecommitdiffstats
path: root/jjb/functest/functest-k8.sh
blob: 419c4e051fdc92f0c8ed16112022fced403c9c89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash

set -e
set +u
set +o pipefail

[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null"
FUNCTEST_DIR=/home/opnfv/functest

rc_file=${HOME}/k8.creds
sudo rm -rf $rc_file

if [[ ${INSTALLER_TYPE} == 'compass' ]]; then
    admin_conf_file_vol="-v ${HOME}/admin.conf:/root/.kube/config"
    echo "export KUBERNETES_PROVIDER=local" >> $rc_file
    KUBE_MASTER_URL=$(cat ${HOME}/admin.conf|grep server| awk '{print $2}')
    echo "export KUBE_MASTER_URL=$KUBE_MASTER_URL" >> $rc_file
    KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL|awk -F'https://|:[0-9]+' '$0=$2')
    echo "export KUBE_MASTER_IP=$KUBE_MASTER_IP" >> $rc_file
elif [[ ${INSTALLER_TYPE} == 'joid' && ${BRANCH} == 'master' ]]; then
    admin_conf_file_vol="-v ${HOME}/joid_config/config:/root/.kube/config"
    rc_file=${HOME}/joid_config/k8config
else
    echo "Not supported by other installers yet"
    exit 1
fi

rc_file_vol="-v ${rc_file}:${FUNCTEST_DIR}/conf/env_file"

dir_result="${HOME}/opnfv/functest/results/${BRANCH##*/}"
mkdir -p ${dir_result}
sudo rm -rf ${dir_result}/*
results_vol="-v ${dir_result}:${FUNCTEST_DIR}/results"

volumes="${rc_file_vol} ${results_vol} ${admin_conf_file_vol}"

envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} \
    -e NODE_NAME=${NODE_NAME} -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} \
    -e BUILD_TAG=${BUILD_TAG} -e DEPLOY_TYPE=${DEPLOY_TYPE}"

DOCKER_TAG=`[[ ${BRANCH##*/} == "master" ]] && echo "latest" || echo ${BRANCH##*/}`

set +e

ret_val_file="${HOME}/opnfv/functest/results/${BRANCH##*/}/return_value"
echo 0 > ${ret_val_file}

FUNCTEST_IMAGES="\
opnfv/functest-kubernetes-healthcheck:${DOCKER_TAG} \
opnfv/functest-kubernetes-smoke:${DOCKER_TAG} \
opnfv/functest-kubernetes-features:${DOCKER_TAG}"
cmd_opt="run_tests -r -t all"

for image in ${FUNCTEST_IMAGES}; do
    echo "Pulling Docker image ${image} ..."
    docker pull "${image}" >/dev/null
    cmd="docker run --rm ${envs} ${volumes} ${image} /bin/bash -c '${cmd_opt}'"
    echo "Running Functest k8s test cases, CMD: ${cmd}"
    eval ${cmd}
    ret_value=$?
    if [ ${ret_value} != 0 ]; then
        echo ${ret_value} > ${ret_val_file}
    fi
done