diff options
author | Fatih Degirmenci <fdegir@gmail.com> | 2018-04-11 23:32:11 +0200 |
---|---|---|
committer | Fatih Degirmenci <fdegir@gmail.com> | 2018-04-12 11:13:30 +0200 |
commit | bea090a9a959a13043789be229c11076cc56d40d (patch) | |
tree | e39c834db9445ea86a7540fb972cfbbc0e881f76 /xci/playbooks/roles/prepare-functest/templates | |
parent | 21ad943989a6573c6fd74e479d286f2a43ce9ae6 (diff) |
Update prepare-functest role for k8s and fix fetching xci.env
This change updates prepare-functest role for testing k8s scenarios
using functest healthcheck. The changes include
- update tasks to skip checking/creation of public gateway which
is needed for OpenStack based scenarios
- update run-functest.sh.j2 template and set the used docker image
name based on FUNCTEST_SUITE_NAME that is going to be used
- update run-functest.sh.j2 template and add commands needed to run
tests using functest-kubernetes-${FUNCTEST_SUITE_NAME} docker image
- update env.j2 to exclude setting the var EXTERNAL_NETWORK which is needed
for OpenStack based scenarios
Apart from updating the the prepare-functest role, a bug has also been fixed
by adding the fetching of xci.env for installer kubespray.
installer-type:kubespray
deploy-scenario:k8-nosdn-nofeature
Change-Id: Ia701db9748ea9509a2dc165341285fb189aa7266
Signed-off-by: Fatih Degirmenci <fdegir@gmail.com>
Diffstat (limited to 'xci/playbooks/roles/prepare-functest/templates')
-rw-r--r-- | xci/playbooks/roles/prepare-functest/templates/env.j2 | 6 | ||||
-rw-r--r-- | xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 | 59 |
2 files changed, 49 insertions, 16 deletions
diff --git a/xci/playbooks/roles/prepare-functest/templates/env.j2 b/xci/playbooks/roles/prepare-functest/templates/env.j2 index af271ac7..d9a3bf32 100644 --- a/xci/playbooks/roles/prepare-functest/templates/env.j2 +++ b/xci/playbooks/roles/prepare-functest/templates/env.j2 @@ -1,5 +1,7 @@ INSTALLER_IP=192.168.122.2 -EXTERNAL_NETWORK={{ external_network }} -CI_LOOP=daily TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results ENERGY_RECORDER_API_URL=http://energy.opnfv.fr/resources +{# external network is only valid for OpenStack based scenarios #} +{% if 'os-' in deploy_scenario %} +EXTERNAL_NETWORK={{ external_network }} +{% endif %} diff --git a/xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 b/xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 index f7e78ac8..0f97c3b4 100644 --- a/xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 +++ b/xci/playbooks/roles/prepare-functest/templates/run-functest.sh.j2 @@ -3,19 +3,8 @@ # Variables that we need to pass from XCI to functest XCI_ENV=(INSTALLER_TYPE XCI_FLAVOR OPENSTACK_OSA_VERSION CI_LOOP BUILD_TAG NODE_NAME FUNCTEST_MODE FUNCTEST_SUITE_NAME) -source /root/openrc - -openstack --insecure network create --external \ - --provider-physical-network flat \ - --provider-network-type flat {{ external_network }} - -openstack --insecure subnet create --network {{ external_network }} \ - --allocation-pool {{ allocation_pool }} \ - --subnet-range {{ subnet_cidr }} --gateway {{ gateway_ip }} \ - --no-dhcp {{ subnet_name }} - -mkdir ~/results/ -mkdir ~/images && cd ~/images && wget -q http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img && cd ~ +# Create directory to store functest logs +mkdir -p ~/results/ # Extract variables from xci.env file if [[ -e /root/xci.env ]]; then @@ -38,8 +27,50 @@ echo "------------- functest environment file --------------" cat /root/env echo "------------------------------------------------------" +# we need to ensure the necessary environment variables are sourced +source /root/env + +{% if 'os-' in deploy_scenario %} +{# stuff needed for OpenStack based scenarios #} +source /root/openrc + +openstack --insecure network create --external \ + --provider-physical-network flat \ + --provider-network-type flat {{ external_network }} + +openstack --insecure subnet create --network {{ external_network }} \ + --allocation-pool {{ allocation_pool }} \ + --subnet-range {{ subnet_cidr }} --gateway {{ gateway_ip }} \ + --no-dhcp {{ subnet_name }} + +mkdir ~/images && cd ~/images && wget -q http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img && cd ~ + +# docker image to use will be different for healthcheck and smoke test +DOCKER_IMAGE_NAME="opnfv/functest-${FUNCTEST_SUITE_NAME}" + sudo docker run --env-file env \ -v $(pwd)/openrc:/home/opnfv/functest/conf/env_file \ -v $(pwd)/images:/home/opnfv/functest/images \ -v $(pwd)/results:/home/opnfv/functest/results \ - opnfv/functest-healthcheck + $DOCKER_IMAGE_NAME +{% else %} +{# stuff needed for Kubernetes based scenarios #} +# Create k8s.creds file for functest +KUBE_MASTER_URL=$(grep -r server ~/.kube/config | awk '{print $2}') +KUBE_MASTER_IP=$(echo $KUBE_MASTER_URL | awk -F "[:/]" '{print $4}') +cat << EOF > ~/k8s.creds +KUBERNETES_PROVIDER=local +KUBE_MASTER_URL=$KUBE_MASTER_URL +KUBE_MASTER_IP=$KUBE_MASTER_IP +EOF + +# docker image to use will be different for healthcheck and smoke test +DOCKER_IMAGE_NAME="opnfv/functest-kubernetes-${FUNCTEST_SUITE_NAME}" + +sudo docker run --env-file env \ + -v $(pwd)/k8s.creds:/home/opnfv/functest/conf/env_file \ + -v $(pwd)/.kube/config:/root/.kube/config \ + -v $(pwd)/results:/home/opnfv/functest/results \ + $DOCKER_IMAGE_NAME +{% endif %} + |