Run the docker container giving the environment variables:
- * INSTALLER_TYPE : possible values are "apex", "compass", "fuel" or "joid".
- * INSTALLER_IP : IP of the installer node/VM.
+ * **INSTALLER_TYPE** : possible values are **apex**, **compass**, **fuel** or **joid**.
+ * **INSTALLER_IP** : IP of the installer node/VM.
-Functest may need to know the IP of the installer to retrieve the credentials from
-the installer node/VM or even from the actual controllers.
+Functest may need to know the IP of the installer to retrieve automatically the
+credentials from the installer node/VM or even from the actual controllers.
The minimum command to create the Functest Docker container can be described as
follows::
docker run -it -e "INSTALLER_IP=10.20.0.2" -e "INSTALLER_TYPE=fuel" opnfv/functest:brahmaputra.1.0 /bin/bash
Optionally, it is possible to precise the container name through the option
---name::
+**--name**::
docker run --name "CONTAINER_NAME" -it -e "INSTALLER_IP=10.20.0.2" -e "INSTALLER_TYPE=fuel" opnfv/functest:brahmaputra.1.0 /bin/bash
-It is also possible to to indicate the path of the OpenStack credentials using -v::
+It is also possible to to indicate the path of the OpenStack credentials using **-v**::
docker run -it -e "INSTALLER_IP=10.20.0.2" -e "INSTALLER_TYPE=fuel" -v <path_to_your_local_creds_file>:/home/opnfv/functest/conf/openstack.creds opnfv/functest:brahmaputra.1.0 /bin/bash
The local file will be mounted in the container under
-/home/opnfv/functest/conf/openstack.creds
+*/home/opnfv/functest/conf/openstack.creds*
If the intention is to run Functest against any of the supported OPNFV scenarios,
it is recommended to include also the environment variable **DEPLOY_SCENARIO**,
-For instance::
+for example::
docker run -it -e "INSTALLER_IP=10.20.0.2" -e "INSTALLER_TYPE=fuel" -e "DEPLOY_SCENARIO=os-odl_l2-nofeature-ha" opnfv/functest:brahmaputra.1.0 /bin/bash
Useful Docker commands
----------------------
-When typing **exit** in the container prompt, this will cause sometimes
-exiting the container and stopping it. When stopping a running Docker container
-all the changes will be lost when it is started again. There is a shortcut to
-quit the container without stopping it. Type CTRL+P+Q to keep the changes.
+When typing **exit** in the container prompt, this will cause
+exiting the container and probably stopping it. When stopping a running Docker container
+all the changes will be lost, there is a keyboard shortcut to
+quit the container without stopping it: CTRL+P+Q.
To reconnect to the running container **DO NOT** use the *run* command again
-(since it will create a new container) use *exec* instead::
+(since it will create a new container), use *exec* instead::
docker ps
<copy the container ID>
- docker exec -ti <CONTAINER_ID> bash
+ docker exec -ti <CONTAINER_ID> /bin/bash
or simply::
- docker exec -ti $(docker ps|grep functest|awk '{print $1}') bash
+ docker exec -ti $(docker ps|grep functest|awk '{print $1}') /bin/bash
There are other useful Docker commands that might be needed to manage possible
issues with the containers.
- * List the running containers::
+List the running containers::
- docker ps
+ docker ps
- * List all the containers including the stopped ones::
+List all the containers including the stopped ones::
docker ps -a
- * It is useful sometimes to remove a container if there are some problems::
+It is useful sometimes to remove a container if there are some problems::
docker rm <CONTAINER_ID>
- * Use the *-f* option if the container is still running, it will force to destroy it::
+Use the *-f* option if the container is still running, it will force to destroy it::
docker -f rm <CONTAINER_ID>
-The Docker image is named **opnfv/functest** and it is stored in the public
+The Docker image is called **opnfv/functest** and it is stored in the public
Docker registry under the OPNFV account: dockerhub_.
The are many different tags that have been created automatically by the CI
mechanisms, but the one that this document refers to is **brahmaputra.1.0**.
-Other tags might cause some problems while running the tests.
+Pulling other tags might cause some problems while running the tests.
Check the Docker documentation dockerdocs_ for more information.
Once the docker container is up and running, execute the following command in the
prompt::
- ${repos_dir}/functest/docker/prepare_env.sh
+ ${repos_dir}/functest/docker/prepare_env.sh
NOTE: **${repos_dir}** is a default environment variable inside the docker
container, which points to */home/opnfv/repos/*
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 must be run
-only once every time the docker is started.
+only once every time the docker is started from sratch.
Focus on the OpenStack credentials
source /home/opnfv/functest/conf/openstack.creds
-or simply using the environment variable **$creds**::
+or simply using the environment variable **creds**::
. $creds
------------------
In case you need to provide different configuration parameters to Functest (e.g.
- commit IDs or branches for the repositories, ...) copy the config_functest.yaml
- from the repository to your current directory and run docker with a volume::
+commit IDs or branches for the repositories, ...) copy the **config_functest.yaml**
+from the repository to your current directory and run the container with a volume::
wget https://git.opnfv.org/cgit/functest/plain/testcases/config_functest.yaml
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
-===============================================
-OPNFV FUNCTEST configuration/installation guide
-===============================================
+==================================
+OPNFV FUNCTEST Configuration Guide
+==================================
.. toctree::
:numbered:
All the libraries and dependencies needed by all the Functest tools are
pre-installed in the Docker image.
-This allows running Functest on any platform with any Operating System.
+This allows running Functest on any platform on any Operating System.
The automated mechanisms inside the Functest Docker container will:
* push the results into the OPNFV test result database
-This Docker image can be integrated into CI or deployed **independently** of the CI.
+This Docker image can be integrated into CI or deployed independently.
Please note that the Functest container has been designed for OPNFV, however, it
would be possible to adapt it to any VIM+controller environment since most of the
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.
+triggered previously.
Docker installation
-------------------
Some of the tests against the VIM (Virtual Infrastructure Manager) need an
existing public network to succeed. This is needed, for example, to create
-floating IPs to access instances from the public network (i.e. Jumphost).
+floating IPs to access instances from the public network (i.e. Docker container).
By default, the four OPNFV installers provide a fresh installation with
an external network created along with a router. Make sure that subnet
For example, if the management network is on VLAN 300 and subnet 192.168.1.0/24
and assuming that eth1 is the physical interface with access to that subnet::
- $ ip link add name eth1.300 link eth1 type vlan id 300
- $ ip link set eth1.300 up
- $ ip addr add 192.168.1.66/24 dev eth1.300
+ ip link add name eth1.300 link eth1 type vlan id 300
+ ip link set eth1.300 up
+ ip addr add 192.168.1.66/24 dev eth1.300
This is just an example about how to configure an interface with vlan, but it might
-defer depending on the deployment settings on each installer. Check the
+differ depending on the deployment settings on each installer. Check the
corresponding installer instructions for more info.