X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=docs%2Ftesting%2Fuser%2Fconfigguide%2Fconfigguide.rst;h=d19939afe75a2d7fda2987d0a0ea89b6a8b2eb36;hb=63cd8a0bdb80c5d2c885e5205612dcd4bb956981;hp=61fc45933dc80d450ce71b668d2a6e4e4ebaeb75;hpb=fb3ef61a03cdf2fb938d771e9d23f6435cff240f;p=functest.git diff --git a/docs/testing/user/configguide/configguide.rst b/docs/testing/user/configguide/configguide.rst index 61fc45933..d19939afe 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: where 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. @@ -111,7 +120,7 @@ recommended parameters for invoking docker container -e "DEPLOY_SCENARIO=os---" where: os = OpenStack (No other VIM choices currently available) - controller is one of ( nosdn | odl_l2 | odl_l3 | onos | ocl) + controller is one of ( nosdn | odl_l2 | odl_l3 ) nfv_feature is one or more of ( ovs | kvm | sfc | bgpvpn | nofeature ) If several features are pertinent then use the underscore character '_' to separate each feature (e.g. ovs_kvm) @@ -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. @@ -283,7 +302,7 @@ to attach the 'Up' status Functest container and start bash mode:: docker exec -it bash -4, Functest environemnt preparation and check +4, Functest environment preparation and check To see the Section below `Preparing the Functest environment`_. @@ -293,31 +312,20 @@ 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 + | |-- doctor + | `-- vnfs + -- src + |-- tempest + |-- vims-test + |-- odl_test + `-- fds Underneath the '/home/opnfv/' directory, the Functest docker container includes two main directories: @@ -327,97 +335,143 @@ includes two main directories: the **data** directory stores a 'cirros' test image used in some functional tests and the **results** directory stores some temporary result log files - * The **repos** directory holds various repositories. The directory - '/home/opnfv/repos/functest' is used to prepare the needed Functest - environment and to run the tests. The other repository directories + * The **repos** directory holds various repositories. The directories are used for the installation of the needed tooling (e.g. rally) or for the retrieval of feature projects scenarios (e.g. promise) 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_os.sh - | |-- 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 + │   `-- 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. * **docker**: This directory includes the needed files and tools to - build the Funtest Docker image. + build the Functest Docker image. * **docs**: This directory includes documentation: Release Notes, User Guide, Configuration Guide and Developer Guide. * **functest**: This directory contains all the code needed to run @@ -482,7 +536,7 @@ destroy it:: docker rm -f -Check the Docker documentation dockerdocs_ for more information. +Check the Docker documentation [`dockerdocs`_] for more information. Preparing the Functest environment ---------------------------------- @@ -492,7 +546,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** @@ -513,7 +567,7 @@ This script will make sure that the requirements to run the tests are met and will install the needed libraries and tools by all Functest test cases. It should be run only once every time the Functest docker container is started from scratch. If you try to run this command, on -an already prepared enviroment, you will be prompted whether you really +an already prepared environment, you will be prompted whether you really want to continue or not:: functest env prepare @@ -784,9 +838,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