diff options
Diffstat (limited to 'docs/testing/user/configguide')
-rw-r--r-- | docs/testing/user/configguide/ci.rst | 50 | ||||
-rw-r--r-- | docs/testing/user/configguide/configguide.rst | 366 | ||||
-rw-r--r-- | docs/testing/user/configguide/index.rst | 167 | ||||
-rw-r--r-- | docs/testing/user/configguide/prerequisites.rst | 104 |
4 files changed, 405 insertions, 282 deletions
diff --git a/docs/testing/user/configguide/ci.rst b/docs/testing/user/configguide/ci.rst new file mode 100644 index 000000000..384bc34e5 --- /dev/null +++ b/docs/testing/user/configguide/ci.rst @@ -0,0 +1,50 @@ +Integration in CI +================= +In CI we use the Docker image and execute the appropriate commands within the +container from Jenkins. + +Docker creation in set-functest-env builder `[3]`_:: + + envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}" + [...] + docker pull opnfv/functest:$DOCKER_TAG >/dev/null + cmd="sudo docker run -id ${envs} ${volumes} ${custom_params} ${TESTCASE_OPTIONS} opnfv/functest:${DOCKER_TAG} /bin/bash" + echo "Functest: Running docker run command: ${cmd}" + ${cmd} >${redirect} + sleep 5 + container_id=$(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | awk '{print $1}' | head -1) + echo "Container ID=${container_id}" + if [ -z ${container_id} ]; then + echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing." + docker ps -a + exit 1 + fi + echo "Starting the container: docker start ${container_id}" + docker start ${container_id} + sleep 5 + docker ps >${redirect} + if [ $(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | wc -l) == 0 ]; then + echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..." + exit 1 + fi + + cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start" + echo "Executing command inside the docker: ${cmd}" + docker exec ${container_id} ${cmd} + + +Test execution in functest-all builder `[3]`_:: + + branch=${GIT_BRANCH##*/} + echo "Functest: run $FUNCTEST_SUITE_NAME on branch ${branch}" + cmd="functest testcase run $FUNCTEST_SUITE_NAME" + fi + container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1) + docker exec $container_id $cmd + ret_value=$? + exit $ret_value + +Docker clean in functest-cleanup builder `[3]`_ calling docker rm and docker rmi + + +.. _`[3]`: https://git.opnfv.org/releng/tree/jjb/functest/functest-daily-jobs.yml diff --git a/docs/testing/user/configguide/configguide.rst b/docs/testing/user/configguide/configguide.rst index 03b5c7135..716c8a135 100644 --- a/docs/testing/user/configguide/configguide.rst +++ b/docs/testing/user/configguide/configguide.rst @@ -1,24 +1,30 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 +Installation and configuration (Ubuntu) +======================================= + +The historical docker file is based on Ubuntu. It has been maintained for +Euphrates. Pulling the Docker image ------------------------ Pull the Functest Docker image ('opnfv/functest') from the public -dockerhub registry under the OPNFV account: [dockerhub_], with the +dockerhub registry under the OPNFV account: [̀`dockerhub`_], with the following docker command:: docker pull opnfv/functest:<TagIdentifier> where <TagIdentifier> identifies a release of the Functest docker -container image in the public dockerhub registry. There are many tags +container image in the public Dockerhub registry. There are many tags created automatically by the CI mechanisms, and you must ensure you pull an image with the **correct tag** to match the OPNFV software release installed in your environment. All available tagged images can be seen from location [FunctestDockerTags_]. For example, when running on the first official release of the OPNFV Danube system platform, -tag "danube.1.0" is needed. Pulling other tags might cause some -problems while running the tests. +tag "danube.1.0" is needed. For the second and third releases, the tag +"danube.2.0" and "danube.3.0" can be used respectively. +Pulling other tags might cause some problems while running the tests. Docker images pulled without a tag specifier bear the implicitly assigned label "latest". If you need to specifically pull the latest Functest docker image, then omit the tag argument:: @@ -29,16 +35,19 @@ After pulling the Docker image, check that it is available with the following docker command:: [functester@jumphost ~]$ docker images - REPOSITORY TAG IMAGE ID CREATED SIZE - opnfv/functest latest 8cd6683c32ae 2 weeks ago 1.321 GB - opnfv/functest danube.1.0 13fa54a1b238 4 weeks ago 1.29 GB - opnfv/functest colorado.1.0 94b78faa94f7 9 weeks ago 968 MB + REPOSITORY TAG IMAGE ID CREATED SIZE + opnfv/functest latest 8cd6683c32ae 2 weeks ago 1.321 GB + opnfv/functest danube.2.0 d2c174a91911 7 minutes ago 1.471 GB + opnfv/functest danube.1.0 13fa54a1b238 4 weeks ago 1.29 GB The Functest docker container environment can -in principle- be also used with non-OPNFV official installers (e.g. 'devstack'), with the **disclaimer** that support for such environments is outside of the scope and responsibility of the OPNFV project. +Please note that alpine dockers have been introduced in Euphrates. See alpine +section for details. + Accessing the Openstack credentials ----------------------------------- OpenStack credentials are mandatory and must be provided to Functest. @@ -184,8 +193,11 @@ when performing manual test scenarios:: text can be sent to the test results file / log files and also to the standard console output. +Installer Tips +-------------- + Apex Installer Tips -------------------- +^^^^^^^^^^^^^^^^^^^ Some specific tips are useful for the Apex Installer case. If not using Apex Installer; ignore this section. @@ -231,7 +243,7 @@ illustration purposes:: opnfv/functest /bin/bash Compass installer local development env usage Tips --------------------------------------------------- +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In the compass-functest local test case check and development environment, in order to get openstack service inside the functest container, some parameters should be configured during container creation, which are @@ -253,15 +265,22 @@ Tag omitted means the latest docker image:: To make a file used for the environment, such as 'functest-docker-env':: - OS_AUTH_URL=http://172.16.1.222:35357/v2.0 + CINDER_ENDPOINT_TYPE=publicURL + NOVA_ENDPOINT_TYPE=publicURL + OS_ENDPOINT_TYPE=publicURL + OS_INTERFACE=publicURL OS_USERNAME=admin - OS_PASSWORD=console - OS_TENANT_NAME=admin - OS_VOLUME_API_VERSION=2 + OS_PASSWORD='990232e0885da343ac805523322d' OS_PROJECT_NAME=admin - INSTALLER_TYPE=compass - INSTALLER_IP=192.168.200.2 - EXTERNAL_NETWORK=ext-net + OS_TENANT_NAME=admin + OS_AUTH_URL=https://192.16.1.222:5000/v3 + OS_NO_CACHE=1 + OS_USER_DOMAIN_NAME=Default + OS_PROJECT_DOMAIN_NAME=Default + OS_REGION_NAME=RegionOne + OS_IDENTITY_API_VERSION=3 + OS_AUTH_VERSION=3 + Note: please adjust the content according to the environment, such as 'TENANT_ID' maybe used for some special cases. @@ -293,31 +312,21 @@ Inside the Functest docker container, the following directory structure should now be in place:: `-- home - `-- opnfv - |-- functest - | |-- conf - | |-- data - | `-- results - `-- repos - |-- bgpvpn - |-- copper - |-- doctor - |-- domino - |-- functest - |-- kingbird - |-- odl_test - |-- onos - |-- parser - |-- promise - |-- rally - |-- refstack-client - |-- releng - |-- sdnvpn - |-- securityscanning - |-- sfc - |-- tempest - |-- vims_test - `-- vnfs + | `-- opnfv + | |-- functest + | | |-- conf + | | |-- data + | | |-- images + | | `-- results + | `-- repos + | |-- onos + | |-- doctor + | `-- vnfs + -- src + |-- tempest + |-- vims-test + |-- odl_test + `-- fds Underneath the '/home/opnfv/' directory, the Functest docker container includes two main directories: @@ -334,83 +343,132 @@ includes two main directories: The structure under the **functest** repository can be described as follows:: - . |-- INFO - |-- LICENSE - |-- requirements.txt - |-- run_unit_tests.sh - |-- setup.py - |-- test-requirements.txt - |-- commons - | |-- ims - | |-- mobile - | `--traffic-profile-guidelines.rst - |-- docker - | |-- Dockerfile - | |-- config_install_env.sh - | `-- docker_remote_api - |-- docs - | |-- com - | |-- configguide - | |-- devguide - | |-- images - | |-- internship - | |-- release-notes - | |-- results - | `--userguide - |-- functest - |-- __init__.py - |-- ci - | |-- __init__.py - | |-- check_deployment.py - | |-- config_functest.yaml - | |-- config_patch.yaml - | |-- generate_report.py - | |-- prepare_env.py - | |-- run_tests.py - | |-- testcases.yaml - | |-- tier_builder.py - | `-- tier_handler.py - |-- cli - | |-- __init__.py - | |-- cli_base.py - | |-- commands - | |-- functest-complete.sh - | `-- setup.py - |-- core - | |-- __init__.py - | |-- feature.py - | |-- pytest_suite_runner.py - | |-- testcase.py - | |-- vnf_base.py - |-- opnfv_tests - | |-- __init__.py - | |-- features - | |-- mano - | |-- openstack - | |-- sdn - | |-- security_scan - | `-- vnf - |-- tests - | |-- __init__.py - | `-- unit - `-- utils - |-- __init__.py - |-- config.py - |-- constants.py - |-- env.py - |-- functest_logger.py - |-- functest_utils.py - |-- openstack - |-- openstack_clean.py - |-- openstack_snapshot.py - |-- openstack_tacker.py - `-- openstack_utils.py - - - (Note: All *.pyc files removed from above list for brevity...) - -We may distinguish several directories, the first level has 4 directories: - + |-- INFO + |-- LICENSE + |-- api + | `-- apidoc + |-- build.sh + |-- commons + | |-- docker + | |-- Dockerfile + | |-- Dockerfile.aarch64.patch + | |-- components + | |-- config_install_env.sh + | |-- core + | |-- docker_remote_api + | |-- features + | |-- healthcheck + | |-- smoke + | |-- vnf + | `-- thirdparty-requirements.txt + |-- docs + | |-- com + | |-- images + | |-- release + | | `-- release-notes + | |-- results + | | testing + | | |-- developer + | | `-- user + | | |-- configguide + | | `-- userguide + `-- functest + |-- api + | |-- base.py + | |-- server.py + | |-- urls.py + | |-- common + | | |-- api_utils.py + | | `-- error.py + | `-- resources + | `-- v1 + | |-- creds.py + | |-- envs.py + | |-- testcases.py + | `-- tiers.py + |-- ci + │ |-- check_deployment.py + │ |-- config_aarch64_patch.yaml + │ |-- config_functest.yaml + │ |-- config_patch.yaml + │ |-- download_images.sh + │ |-- installer_params.yaml + │ |-- logging.ini + │ |-- prepare_env.py + │ |-- rally_aarch64_patch.conf + │ |-- run_tests.py + │ |-- testcases.yaml + │ |-- tier_builder.py + │ `-- tier_handler.py + |-- cli + │ |-- cli_base.py + │ |-- commands + │ │ |-- cli_env.py + │ │ |-- cli_os.py + │ │ |-- cli_testcase.py + │ │ `-- cli_tier.py + │ |-- functest-complete.sh + |-- core + │ |-- feature.py + │ |-- testcase.py + │ |-- unit.py + │ `-- vnf.py + |-- energy + │ |-- energy.py + │ `-- energy.pyc + |-- opnfv_tests + │ |-- mano + │ │ |-- orchestra.py + │ |-- openstack + │ │ |-- rally + │ │ |-- refstack_client + │ │ |-- snaps + │ │ |-- tempest + │ │ `-- vping + │ |-- sdn + │ │ |-- odl + │ │ `-- onos + │ `-- vnf + │ |-- aaa + │ |-- ims + │ `-- router + |-- tests + │ `-- unit + │ |-- ci + │ |-- cli + │ |-- core + │ |-- energy + │ |-- features + │ |-- odl + │ |-- openstack + │ |-- opnfv_tests + │ |-- test_utils.py + │ |-- utils + │ `-- vnf + |-- utils + | |-- config.py + | |-- constants.py + | |-- decorators.py + | |-- env.py + | |-- functest_utils.py + | |-- functest_vacation.py + | |-- openstack_clean.py + | |-- openstack_snapshot.py + | |-- openstack_tacker.py + | `-- openstack_utils.py + |-- requirements.txt + |-- setup.cfg + |-- setup.py + |-- test-requirements.txt + |-- tox.ini + |-- upper-constraints.txt + + (Note: All *.pyc files removed from above list for brevity...) + +We may distinguish several directories, the first level has 5 directories: + +* **api**: This directory is dedicated for the internal Functest API and the API + (framework) documentations. * **commons**: This directory is dedicated for storage of traffic profile or any other test inputs that could be reused by any test project. @@ -480,7 +538,7 @@ destroy it:: docker rm -f <CONTAINER_ID> -Check the Docker documentation dockerdocs_ for more information. +Check the Docker documentation [`dockerdocs`_] for more information. Preparing the Functest environment ---------------------------------- @@ -490,7 +548,7 @@ CLI utility is available to perform the needed environment preparation action. Once the environment is prepared, the **functest** CLI utility can be used to run different functional tests. The usage of the **functest** CLI utility to run tests is described further in the -Functest User Guide `OPNFV_FuncTestUserGuide`_ +`Functest User Guide`_ Prior to commencing the Functest environment preparation, we can check the initial status of the environment. Issue the **functest env status** @@ -782,9 +840,63 @@ and install the **docker-engine**. The instructions conclude with a "test pull" of a sample "Hello World" docker container. This should now work with the above pre-requisite actions. -.. _dockerdocs: https://docs.docker.com/ -.. _dockerhub: https://hub.docker.com/r/opnfv/functest/ -.. _Proxy: https://docs.docker.com/engine/admin/systemd/#http-proxy -.. _FunctestDockerTags: https://hub.docker.com/r/opnfv/functest/tags/ -.. _InstallDockerCentOS: https://docs.docker.com/engine/installation/linux/centos/ -.. _OPNFV_FuncTestUserGuide: http://artifacts.opnfv.org/functest/docs/userguide/index.html + +Installation and Configuration (Alpine) +======================================= + +Introduction to Alpine +---------------------- +Alpine container have been introduced in Euphrates and released as experimental. +Alpine allows Functest testing in several very light container and thanks to +the refactoring on dependency management shoudl allow the creation of light and +fully customized docker files + +Functest Alpine +--------------- +Docker files are available on the the dockerhub: + + * opnfv/functest-core + * opnfv/functest-healthcheck + * opnfv/functest-smoke + * opnfv/functest-features + * opnfv/functest-components + * opnfv/functest-vnf + + +Preparing your environment +-------------------------- + +cat env:: + + INSTALLER_TYPE=XXX + INSTALLER_IP=XXX + EXTERNAL_NETWORK=XXX + +cat openstack.creds:: + + export OS_AUTH_URL=XXX + export OS_USER_DOMAIN_NAME=XXX + export OS_PROJECT_DOMAIN_NAME=XXX + export OS_USERNAME=XXX + export OS_TENANT_NAME=XXX + export OS_PROJECT_NAME=XXX + export OS_PASSWORD=XXX + export OS_VOLUME_API_VERSION=XXX + export OS_IDENTITY_API_VERSION=XXX + export OS_IMAGE_API_VERSION=XXX + +md5sum images/*md5sum images/*:: + + c03e55c22b6fb2127e7de391b488d8d6 `images/CentOS-7-x86_64-GenericCloud.qcow2`_ + f8ab98ff5e73ebab884d80c9dc9c7290 `images/cirros-0.3.5-x86_64-disk.img`_ + 845c9b0221469f9e0f4d7ea0039ab5f2 `images/ubuntu-14.04-server-cloudimg-amd64-disk1.img`_ + +.. _`dockerdocs`: https://docs.docker.com/ +.. _`dockerhub`: https://hub.docker.com/r/opnfv/functest/ +.. _`Proxy`: https://docs.docker.com/engine/admin/systemd/#http-proxy +.. _`FunctestDockerTags`: https://hub.docker.com/r/opnfv/functest/tags/ +.. _`InstallDockerCentOS`: https://docs.docker.com/engine/installation/linux/centos/ +.. _`Functest User Guide`: http://docs.opnfv.org/en/stable-danube/submodules/functest/docs/testing/user/userguide/index.html +:: _`images/CentOS-7-x86_64-GenericCloud.qcow2` http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img +:: _`images/cirros-0.3.5-x86_64-disk.img` https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img +:: _`images/ubuntu-14.04-server-cloudimg-amd64-disk1.img` https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2 diff --git a/docs/testing/user/configguide/index.rst b/docs/testing/user/configguide/index.rst index 737f0ba7c..69c41660a 100644 --- a/docs/testing/user/configguide/index.rst +++ b/docs/testing/user/configguide/index.rst @@ -113,170 +113,23 @@ upstream communities. The functional test cases are described in the Functest User Guide `[2]`_ - -Prerequisites -============= -The OPNFV deployment is out of the scope of this document but it can be -found in http://docs.opnfv.org. -The OPNFV platform is considered as the SUT in this document. - -Several prerequisites are needed for Functest: - - #. A Jumphost to run Functest on - #. A Docker daemon shall be installed on the Jumphost - #. A public/external network created on the SUT - #. An admin/management network created on the SUT - #. Connectivity from the Jumphost to the SUT public/external network - #. Connectivity from the Jumphost to the SUT admin/management network - -WARNING: Connectivity from Jumphost is essential and it is of paramount -importance to make sure it is working before even considering to install -and run Functest. Make also sure you understand how your networking is -designed to work. - -NOTE: **Jumphost** refers to any server which meets the previous -requirements. Normally it is the same server from where the OPNFV -deployment has been triggered previously. - -NOTE: If your Jumphost is operating behind a company http proxy and/or -firewall, please consult first the section `Proxy Support`_, towards -the end of this document. The section details some tips/tricks which -*may* be of help in a proxified environment. - -Docker installation -------------------- -Docker installation and configuration is only needed to be done once -through the life cycle of Jumphost. - -If your Jumphost is based on Ubuntu, SUSE, RHEL or CentOS linux, please -consult the references below for more detailed instructions. The -commands below are offered as a short reference. - -*Tip:* For running docker containers behind the proxy, you need first -some extra configuration which is described in section -`Docker Installation on CentOS behind http proxy`_. You should follow -that section before installing the docker engine. - -Docker installation needs to be done as root user. You may use other -userid's to create and run the actual containers later if so desired. -Log on to your Jumphost as root user and install the Docker Engine -(e.g. for CentOS family):: - - curl -sSL https://get.docker.com/ | sh - systemctl start docker - - *Tip:* If you are working through proxy, please set the https_proxy - environment variable first before executing the curl command. - -Add your user to docker group to be able to run commands without sudo:: - - sudo usermod -aG docker <your_user> - -A reconnection is needed. There are 2 ways for this: - #. Re-login to your account - #. su - <username> - -References - Installing Docker Engine on different Linux Operating Systems: - * Ubuntu_ - * RHEL_ - * CentOS_ - * SUSE_ - -.. _Ubuntu: https://docs.docker.com/engine/installation/linux/ubuntulinux/ -.. _RHEL: https://docs.docker.com/engine/installation/linux/rhel/ -.. _CentOS: https://docs.docker.com/engine/installation/linux/centos/ -.. _SUSE: https://docs.docker.com/engine/installation/linux/suse/ - -Public/External network on SUT ------------------------------- -Some of the tests against the VIM (Virtual Infrastructure Manager) need -connectivity through an existing public/external network in order to -succeed. This is needed, for example, to create floating IPs to access -VM instances through the public/external network (i.e. from the Docker -container). - -By default, the four OPNFV installers provide a fresh installation with -a public/external network created along with a router. Make sure that -the public/external subnet is reachable from the Jumphost. - -*Hint:* For the given OPNFV Installer in use, the IP sub-net address -used for the public/external network is usually a planning item and -should thus be known. Consult the OPNFV Configuration guide `[4]`_, and -ensure you can reach each node in the SUT, from the Jumphost using the -'ping' command using the respective IP address on the public/external -network for each node in the SUT. The details of how to determine the -needed IP addresses for each node in the SUT may vary according to the -used installer and are therefore ommitted here. - -Connectivity to Admin/Management network on SUT ------------------------------------------------ -Some of the Functest tools need to have access to the OpenStack -admin/management network of the controllers `[1]`_. - -For this reason, check the connectivity from the Jumphost to all the -controllers in cluster in the OpenStack admin/management network range. - -Installation and configuration -============================== +.. include:: ./prerequisites.rst .. include:: ./configguide.rst -Integration in CI -================= -In CI we use the Docker image and execute the appropriate commands within the -container from Jenkins. - -Docker creation in set-functest-env builder `[3]`_:: - - envs="-e INSTALLER_TYPE=${INSTALLER_TYPE} -e INSTALLER_IP=${INSTALLER_IP} -e NODE_NAME=${NODE_NAME}" - [...] - docker pull opnfv/functest:$DOCKER_TAG >/dev/null - cmd="sudo docker run -id ${envs} ${volumes} ${custom_params} ${TESTCASE_OPTIONS} opnfv/functest:${DOCKER_TAG} /bin/bash" - echo "Functest: Running docker run command: ${cmd}" - ${cmd} >${redirect} - sleep 5 - container_id=$(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | awk '{print $1}' | head -1) - echo "Container ID=${container_id}" - if [ -z ${container_id} ]; then - echo "Cannot find opnfv/functest container ID ${container_id}. Please check if it is existing." - docker ps -a - exit 1 - fi - echo "Starting the container: docker start ${container_id}" - docker start ${container_id} - sleep 5 - docker ps >${redirect} - if [ $(docker ps | grep "opnfv/functest:${DOCKER_TAG}" | wc -l) == 0 ]; then - echo "The container opnfv/functest with ID=${container_id} has not been properly started. Exiting..." - exit 1 - fi - - cmd="python ${FUNCTEST_REPO_DIR}/functest/ci/prepare_env.py start" - echo "Executing command inside the docker: ${cmd}" - docker exec ${container_id} ${cmd} - +.. include:: ./ci.rst -Test execution in functest-all builder `[3]`_:: - branch=${GIT_BRANCH##*/} - echo "Functest: run $FUNCTEST_SUITE_NAME on branch ${branch}" - cmd="functest testcase run $FUNCTEST_SUITE_NAME" - fi - container_id=$(docker ps -a | grep opnfv/functest | awk '{print $1}' | head -1) - docker exec $container_id $cmd - ret_value=$? - exit $ret_value +References +========== -Docker clean in functest-cleanup builder `[3]`_ calling docker rm and docker rmi +`[1]`_ : Keystone and public end point constraint +`[2]`_ : Functest User guide -References -========== -.. _`[1]`: https://ask.openstack.org/en/question/68144/keystone-unable-to-use-the-public-endpoint/ -.. _`[2]`: http://artifacts.opnfv.org/functest/docs/userguide/index.html -.. _`[3]`: https://git.opnfv.org/cgit/releng/tree/jjb/functest/functest-ci-jobs.yml -.. _`[4]`: http://artifacts.opnfv.org/functest/danube/docs/configguide/index.html +`[3]`_ : Functest Jenkins jobs +`[4]`_ : Functest Configuration guide `OPNFV main site`_ @@ -284,5 +137,9 @@ References IRC support channel: #opnfv-functest +.. _`[1]`: https://ask.openstack.org/en/question/68144/keystone-unable-to-use-the-public-endpoint/ +.. _`[2]`: http://docs.opnfv.org/en/stable-danube/submodules/functest/docs/testing/user/userguide/index.html +.. _`[3]`: https://git.opnfv.org/cgit/releng/tree/jjb/functest/functest-ci-jobs.yml +.. _`[4]`: http://docs.opnfv.org/en/stable-danube/submodules/functest/docs/testing/user/configguide/index.html .. _`OPNFV main site`: http://www.opnfv.org .. _`Functest page`: https://wiki.opnfv.org/functest diff --git a/docs/testing/user/configguide/prerequisites.rst b/docs/testing/user/configguide/prerequisites.rst new file mode 100644 index 000000000..94f676008 --- /dev/null +++ b/docs/testing/user/configguide/prerequisites.rst @@ -0,0 +1,104 @@ +Prerequisites +============= +The OPNFV deployment is out of the scope of this document but it can be +found in http://docs.opnfv.org. +The OPNFV platform is considered as the SUT in this document. + +Several prerequisites are needed for Functest: + + #. A Jumphost to run Functest on + #. A Docker daemon shall be installed on the Jumphost + #. A public/external network created on the SUT + #. An admin/management network created on the SUT + #. Connectivity from the Jumphost to the SUT public/external network + #. Connectivity from the Jumphost to the SUT admin/management network + +WARNING: Connectivity from Jumphost is essential and it is of paramount +importance to make sure it is working before even considering to install +and run Functest. Make also sure you understand how your networking is +designed to work. + +NOTE: **Jumphost** refers to any server which meets the previous +requirements. Normally it is the same server from where the OPNFV +deployment has been triggered previously. + +NOTE: If your Jumphost is operating behind a company http proxy and/or +firewall, please consult first the section `Proxy Support`_, towards +the end of this document. The section details some tips/tricks which +*may* be of help in a proxified environment. + +Docker installation +------------------- +Docker installation and configuration is only needed to be done once +through the life cycle of Jumphost. + +If your Jumphost is based on Ubuntu, SUSE, RHEL or CentOS linux, please +consult the references below for more detailed instructions. The +commands below are offered as a short reference. + +*Tip:* For running docker containers behind the proxy, you need first +some extra configuration which is described in section +`Docker Installation on CentOS behind http proxy`_. You should follow +that section before installing the docker engine. + +Docker installation needs to be done as root user. You may use other +userid's to create and run the actual containers later if so desired. +Log on to your Jumphost as root user and install the Docker Engine +(e.g. for CentOS family):: + + curl -sSL https://get.docker.com/ | sh + systemctl start docker + + *Tip:* If you are working through proxy, please set the https_proxy + environment variable first before executing the curl command. + +Add your user to docker group to be able to run commands without sudo:: + + sudo usermod -aG docker <your_user> + +A reconnection is needed. There are 2 ways for this: + #. Re-login to your account + #. su - <username> + +References - Installing Docker Engine on different Linux Operating Systems: + * Ubuntu_ + * RHEL_ + * CentOS_ + * SUSE_ + +.. _Ubuntu: https://docs.docker.com/engine/installation/linux/ubuntulinux/ +.. _RHEL: https://docs.docker.com/engine/installation/linux/rhel/ +.. _CentOS: https://docs.docker.com/engine/installation/linux/centos/ +.. _SUSE: https://docs.docker.com/engine/installation/linux/suse/ + +Public/External network on SUT +------------------------------ +Some of the tests against the VIM (Virtual Infrastructure Manager) need +connectivity through an existing public/external network in order to +succeed. This is needed, for example, to create floating IPs to access +VM instances through the public/external network (i.e. from the Docker +container). + +By default, the four OPNFV installers provide a fresh installation with +a public/external network created along with a router. Make sure that +the public/external subnet is reachable from the Jumphost. + +*Hint:* For the given OPNFV Installer in use, the IP sub-net address +used for the public/external network is usually a planning item and +should thus be known. Consult the OPNFV Configuration guide `[4]`_, and +ensure you can reach each node in the SUT, from the Jumphost using the +'ping' command using the respective IP address on the public/external +network for each node in the SUT. The details of how to determine the +needed IP addresses for each node in the SUT may vary according to the +used installer and are therefore ommitted here. + +Connectivity to Admin/Management network on SUT +----------------------------------------------- +Some of the Functest tools need to have access to the OpenStack +admin/management network of the controllers `[1]`_. + +For this reason, check the connectivity from the Jumphost to all the +controllers in cluster in the OpenStack admin/management network range. + +.. _`[1]`: https://ask.openstack.org/en/question/68144/keystone-unable-to-use-the-public-endpoint/ +.. _`[4]`: http://artifacts.opnfv.org/functest/danube/docs/configguide/index.html |