+Alpine containers have been introduced in Euphrates.
+Alpine allows Functest testing in several very light containers and thanks to
+the refactoring on dependency management should allow the creation of light and
+fully customized docker images.
+
+
+Functest Dockers for OpenStack deployment
+-----------------------------------------
+Docker images are available on the dockerhub:
+
+ * opnfv/functest-core
+ * opnfv/functest-healthcheck
+ * opnfv/functest-smoke
+ * opnfv/functest-benchmarking
+ * opnfv/functest-vnf
+
+
+Preparing your environment
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+cat env::
+
+ DEPLOY_SCENARIO=XXX # if not os-nosdn-nofeature-noha scenario
+ NAMESERVER=XXX # if not 8.8.8.8
+ EXTERNAL_NETWORK=XXX # if not first network with router:external=True
+ NEW_USER_ROLE=XXX # if not member
+ SDN_CONTROLLER_IP=XXX # if odl scenario
+ VOLUME_DEVICE_NAME=XXX # if not vdb
+ FLAVOR_EXTRA_SPECS=hw:mem_page_size:large # if fdio scenarios
+
+See section on environment variables for details.
+
+cat env_file::
+
+ export OS_AUTH_URL=XXX
+ export OS_USER_DOMAIN_NAME=XXX
+ export OS_PROJECT_DOMAIN_NAME=XXX
+ export OS_USERNAME=XXX
+ export OS_PROJECT_NAME=XXX
+ export OS_PASSWORD=XXX
+ export OS_IDENTITY_API_VERSION=3
+ export OS_REGION_NAME=XXX
+
+See section on OpenStack credentials for details.
+
+Create a directory for the different images (attached as a Docker volume)::
+
+ mkdir -p images && wget -q -O- https://git.opnfv.org/functest/plain/functest/ci/download_images.sh | bash -s -- images && ls -1 images/*
+
+ images/cirros-0.4.0-aarch64-disk.img
+ images/cirros-0.4.0-x86_64-disk.img
+ images/cloudify-docker-manager-community-19.01.24.tar
+ images/shaker-image-1.3.0+stretch.qcow2
+ images/ubuntu-14.04-server-cloudimg-amd64-disk1.img
+ images/ubuntu-14.04-server-cloudimg-arm64-uefi1.img
+ images/ubuntu-16.04-server-cloudimg-amd64-disk1.img
+ images/vyos-1.1.8-amd64.qcow2
+
+Testing healthcheck suite
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Run healthcheck suite::
+
+ sudo docker run --env-file env \
+ -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
+ -v $(pwd)/images:/home/opnfv/functest/images \
+ opnfv/functest-healthcheck
+
+Results shall be displayed as follows::
+
+ +--------------------------+------------------+---------------------+------------------+----------------+
+ | TEST CASE | PROJECT | TIER | DURATION | RESULT |
+ +--------------------------+------------------+---------------------+------------------+----------------+
+ | connection_check | functest | healthcheck | 00:02 | PASS |
+ | tenantnetwork1 | functest | healthcheck | 00:06 | PASS |
+ | tenantnetwork2 | functest | healthcheck | 00:06 | PASS |
+ | vmready1 | functest | healthcheck | 00:06 | PASS |
+ | vmready2 | functest | healthcheck | 00:08 | PASS |
+ | singlevm1 | functest | healthcheck | 00:28 | PASS |
+ | singlevm2 | functest | healthcheck | 00:25 | PASS |
+ | vping_ssh | functest | healthcheck | 00:36 | PASS |
+ | vping_userdata | functest | healthcheck | 00:34 | PASS |
+ | cinder_test | functest | healthcheck | 01:03 | PASS |
+ | tempest_smoke | functest | healthcheck | 05:13 | PASS |
+ | odl | functest | healthcheck | 00:00 | SKIP |
+ +--------------------------+------------------+---------------------+------------------+----------------+
+
+NOTE: the duration is a reference and it might vary depending on your SUT.
+
+Testing smoke suite
+^^^^^^^^^^^^^^^^^^^
+
+Run smoke suite::
+
+ sudo docker run --env-file env \
+ -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
+ -v $(pwd)/images:/home/opnfv/functest/images \
+ opnfv/functest-smoke
+
+Results shall be displayed as follows::
+
+ +------------------------------------+------------------+---------------+------------------+----------------+
+ | TEST CASE | PROJECT | TIER | DURATION | RESULT |
+ +------------------------------------+------------------+---------------+------------------+----------------+
+ | neutron-tempest-plugin-api | functest | smoke | 09:12 | PASS |
+ | rally_sanity | functest | smoke | 16:29 | PASS |
+ | refstack_compute | functest | smoke | 06:25 | PASS |
+ | refstack_object | functest | smoke | 01:54 | PASS |
+ | refstack_platform | functest | smoke | 06:52 | PASS |
+ | tempest_full | functest | smoke | 30:26 | PASS |
+ | tempest_scenario | functest | smoke | 09:23 | PASS |
+ | tempest_slow | functest | smoke | 24:42 | PASS |
+ | patrole | functest | smoke | 02:36 | PASS |
+ | barbican | functest | smoke | 02:13 | PASS |
+ | neutron_trunk | functest | smoke | 00:00 | SKIP |
+ | networking-bgpvpn | functest | smoke | 00:00 | SKIP |
+ | networking-sfc | functest | smoke | 00:00 | SKIP |
+ | octavia | functest | smoke | 00:00 | SKIP |
+ +------------------------------------+------------------+---------------+------------------+----------------+
+
+Note: if the scenario does not support some tests, they are indicated as SKIP.
+See User guide for details.
+
+Testing benchmarking suite
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Run benchmarking suite::
+
+ sudo docker run --env-file env \
+ -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
+ -v $(pwd)/images:/home/opnfv/functest/images \
+ opnfv/functest-benchmarking
+
+Results shall be displayed as follows::
+
+ +--------------------+------------------+----------------------+------------------+----------------+
+ | TEST CASE | PROJECT | TIER | DURATION | RESULT |
+ +--------------------+------------------+----------------------+------------------+----------------+
+ | rally_full | functest | benchmarking | 92:16 | PASS |
+ | rally_jobs | functest | benchmarking | 18:49 | PASS |
+ | vmtp | functest | benchmarking | 15:28 | PASS |
+ | shaker | functest | benchmarking | 24:04 | PASS |
+ +--------------------+------------------+----------------------+------------------+----------------+
+
+Note: if the scenario does not support some tests, they are indicated as SKIP.
+See User guide for details.
+
+Testing vnf suite
+^^^^^^^^^^^^^^^^^
+
+Run vnf suite::
+
+ sudo docker run --env-file env \
+ -v $(pwd)/openstack.creds:/home/opnfv/functest/conf/env_file \
+ -v $(pwd)/images:/home/opnfv/functest/images \
+ opnfv/functest-vnf
+
+Results shall be displayed as follows::
+
+ +----------------------+------------------+--------------+------------------+----------------+
+ | TEST CASE | PROJECT | TIER | DURATION | RESULT |
+ +----------------------+------------------+--------------+------------------+----------------+
+ | cloudify | functest | vnf | 03:49 | PASS |
+ | cloudify_ims | functest | vnf | 24:20 | PASS |
+ | heat_ims | functest | vnf | 32:13 | PASS |
+ | vyos_vrouter | functest | vnf | 14:55 | PASS |
+ | juju_epc | functest | vnf | 41:24 | PASS |
+ +----------------------+------------------+--------------+------------------+----------------+
+
+Functest Dockers for Kubernetes deployment
+------------------------------------------
+Docker images are available on the dockerhub:
+
+ * opnfv/functest-kubernetes-core
+ * opnfv/functest-kubernetest-healthcheck
+ * opnfv/functest-kubernetest-smoke
+
+Preparing your environment
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+cat env::
+
+ DEPLOY_SCENARIO=k8s-XXX
+
+Testing healthcheck suite
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Run healthcheck suite::
+
+ sudo docker run -it --env-file env \
+ -v $(pwd)/config:/root/.kube/config \
+ opnfv/functest-kubernetes-healthcheck
+
+A config file in the current dir 'config' is also required, which should be
+volume mapped to ~/.kube/config inside kubernetes container.
+
+Results shall be displayed as follows::
+
+ +-------------------+------------------+---------------------+------------------+----------------+
+ | TEST CASE | PROJECT | TIER | DURATION | RESULT |
+ +-------------------+------------------+---------------------+------------------+----------------+
+ | k8s_smoke | functest | healthcheck | 01:09 | PASS |
+ +-------------------+------------------+---------------------+------------------+----------------+
+
+Testing smoke suite
+^^^^^^^^^^^^^^^^^^^
+
+Run smoke suite::
+
+ sudo docker run -it --env-file env \
+ -v $(pwd)/config:/root/.kube/config \
+ opnfv/functest-kubernetes-smoke
+
+Results shall be displayed as follows::
+
+ +---------------------------+------------------+---------------+------------------+----------------+
+ | TEST CASE | PROJECT | TIER | DURATION | RESULT |
+ +---------------------------+------------------+---------------+------------------+----------------+
+ | xrally_kubernetes | functest | smoke | 22:04 | PASS |
+ | k8s_conformance | functest | smoke | 173:48 | PASS |
+ +---------------------------+------------------+---------------+------------------+----------------+
+
+Environment variables
+=====================
+
+Several environement variables may be specified:
+
+ * INSTALLER_IP=<Specific IP Address>
+ * DEPLOY_SCENARIO=<vim>-<controller>-<nfv_feature>-<ha_mode>
+ * NAMESERVER=XXX # if not 8.8.8.8
+ * VOLUME_DEVICE_NAME=XXX # if not vdb
+ * EXTERNAL_NETWORK=XXX # if not first network with router:external=True
+ * NEW_USER_ROLE=XXX # if not member
+
+INSTALLER_IP is required by Barometer in order to access the installer node and
+the deployment.
+
+The format for the DEPLOY_SCENARIO env variable can be described as follows:
+ * vim: (os|k8s) = OpenStack or Kubernetes
+ * controller is one of ( nosdn | odl )
+ * nfv_feature is one or more of ( ovs | kvm | sfc | bgpvpn | nofeature )
+ * ha_mode (high availability) is one of ( ha | noha )
+
+If several features are pertinent then use the underscore character '_' to
+separate each feature (e.g. ovs_kvm). 'nofeature' indicates that no OPNFV
+feature is deployed.
+
+The list of supported scenarios per release/installer is indicated in the
+release note.
+
+**NOTE:** The scenario name is mainly used to automatically detect
+if a test suite is runnable or not (e.g. it will prevent ODL test suite to be
+run on 'nosdn' scenarios). If not set, Functest will try to run the default
+test cases that might not include SDN controller or a specific feature.
+
+**NOTE:** An HA scenario means that 3 OpenStack controller nodes are
+deployed. It does not necessarily mean that the whole system is HA. See
+installer release notes for details.
+
+Finally, three additional environment variables can also be passed in
+to the Functest Docker Container, using the -e
+"<EnvironmentVariable>=<Value>" mechanism. The first two parameters are
+only relevant to Jenkins CI invoked testing and **should not be used**
+when performing manual test scenarios:
+
+ * INSTALLER_TYPE=(apex|compass|daisy|fuel)
+ * NODE_NAME=<Test POD Name>
+ * BUILD_TAG=<Jenkins Build Tag>
+
+where:
+
+ * <Test POD Name> = Symbolic name of the POD where the tests are run.
+ Visible in test results files, which are stored
+ to the database. This option is only used when
+ tests are activated under Jenkins CI control.
+ It indicates the POD/hardware where the test has
+ been run. If not specified, then the POD name is
+ defined as "Unknown" by default.
+ DO NOT USE THIS OPTION IN MANUAL TEST SCENARIOS.
+ * <Jenkins Build tag> = Symbolic name of the Jenkins Build Job.
+ Visible in test results files, which are stored
+ to the database. This option is only set when
+ tests are activated under Jenkins CI control.
+ It enables the correlation of test results,
+ which are independently pushed to the results database
+ from different Jenkins jobs.
+ DO NOT USE THIS OPTION IN MANUAL TEST SCENARIOS.
+
+
+Openstack credentials
+=====================