summaryrefslogtreecommitdiffstats
path: root/jjb/functest
diff options
context:
space:
mode:
authorLinda Wang <wangwulin@huawei.com>2018-01-25 04:15:51 +0000
committerLinda Wang <wangwulin@huawei.com>2018-02-01 12:41:47 +0000
commit5203913e8e39ad20c26dee453a0217bcba902785 (patch)
tree4b159a320a8e0ed321096690e0ba7d788040b02b /jjb/functest
parent280ae93b3d91bbd84db9b7aa20f7f5513b8afd7e (diff)
[Functest] Run k8s tests on Compass
Change-Id: I8e88ab0598f43be8d0c9c4ad199dba91c1561f13 Signed-off-by: Linda Wang <wangwulin@huawei.com>
Diffstat (limited to 'jjb/functest')
-rw-r--r--jjb/functest/functest-daily-jobs.yml38
-rwxr-xr-xjjb/functest/functest-k8.sh55
2 files changed, 92 insertions, 1 deletions
diff --git a/jjb/functest/functest-daily-jobs.yml b/jjb/functest/functest-daily-jobs.yml
index 79e5c1503..1f17a507e 100644
--- a/jjb/functest/functest-daily-jobs.yml
+++ b/jjb/functest/functest-daily-jobs.yml
@@ -244,13 +244,32 @@
builders:
- description-setter:
description: "Built on $NODE_NAME"
- - 'functest-{testsuite}-builder'
+ - conditional-step:
+ condition-kind: regex-match
+ regex: "os-*"
+ label: 'DEPLOY_SCENARIO'
+ steps:
+ - 'functest-{testsuite}-builder'
+ - conditional-step:
+ condition-kind: regex-match
+ regex: "k8-*"
+ label: 'DEPLOY_SCENARIO'
+ steps:
+ - 'functest-k8-builder'
########################
# parameter macros
########################
- parameter:
+ name: functest-k8-parameter
+ parameters:
+ - string:
+ name: FUNCTEST_MODE
+ default: 'daily'
+ description: "Daily suite name to run on K8 deployment"
+
+- parameter:
name: functest-daily-parameter
parameters:
- string:
@@ -375,6 +394,23 @@
- 'functest-exit'
- builder:
+ name: functest-k8-builder
+ builders:
+ - 'functest-cleanup'
+ - 'functest-daily-k8'
+ - 'functest-store-results'
+ - 'functest-exit'
+
+- builder:
+ name: functest-daily-k8
+ builders:
+ # yamllint disable rule:indentation
+ - shell:
+ !include-raw:
+ - ../../utils/fetch_k8_conf.sh
+ - ./functest-k8.sh
+
+- builder:
name: functest-daily
builders:
# yamllint disable rule:indentation
diff --git a/jjb/functest/functest-k8.sh b/jjb/functest/functest-k8.sh
new file mode 100755
index 000000000..6df5c53b0
--- /dev/null
+++ b/jjb/functest/functest-k8.sh
@@ -0,0 +1,55 @@
+#!/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 KUBECONFIG=/root/.kube/config" >> $rc_file
+ 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
+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}"
+
+# Set iptables rule to allow forwarding return traffic for container
+if ! sudo iptables -C FORWARD -j RETURN 2> ${redirect} || ! sudo iptables -L FORWARD | awk 'NR==3' | grep RETURN 2> ${redirect}; then
+ sudo iptables -I FORWARD -j RETURN
+fi
+
+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##*/}`
+
+FUNCTEST_IMAGE=opnfv/functest-kubernetes:${DOCKER_TAG}
+docker pull ${FUNCTEST_IMAGE}>/dev/null
+cmd_opt="run_tests -r -t all"
+cmd="docker run --rm --privileged=true ${volumes} ${FUNCTEST_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