Login to the test server with standard user credentials
Navigate to the Voltha installation directory. For example:
cd cord/incubator/voltha
Source the environment:
source env.sh
Verify that no docker containers are running on the server:
docker ps -a
This shall show only a title line, but no containers. If any containers are running, you can terminate them as follows:
docker ps -a | grep -v CONT | awk '{print $1}' | xargs docker rm -f
Launch Voltha and it companion containers (the "test deployment ensemble") using docker-compose in the background:
docker-compose -f compose/docker-compose-system-test.yml up -d
Note: The expected outcome is show below. Order is not important.
Creating compose_fluentd_1 Creating compose_consul_1 Creating compose_registrator_1 Creating compose_voltha_1 Creating compose_ofagent_1 Creating compose_chameleon_1 Creating compose_netconf_1 Creating compose_zookeeper_1 Creating compose_kafka_1 Creating compose_grafana_1 Creating compose_shovel_1
Note: We need to make sure the ponmgmt bridge can forward multicast mac addresses
echo 8 > /sys/class/net/ponmgmt/bridge/group_fwd_mask
The installation steps to this point should complete without errors.
Please check that docker-compose shows all containers as running. In the same Linux terminal, please issue the following command:
docker-compose -f compose/docker-compose-system-test.yml ps
This shall list all containers being in the "Up" state. Expected output (lines are truncated omitting the long port mapping information):
Name Command State ... -------------------------------------------------------------------------... compose_chameleon_1 /chameleon/chameleon/main. ... Up 0.0.0.0:... compose_consul_1 docker-entrypoint.sh agent ... Up 0.0.0.0:... compose_fluentd_1 /bin/sh -c exec fluentd -c ... Up 0.0.0.0:... compose_grafana_1 /usr/bin/supervisord Up 0.0.0.0:... compose_kafka_1 start-kafka.sh Up 0.0.0.0:... compose_netconf_1 /netconf/netconf/main.py - ... Up 0.0.0.0:... compose_ofagent_1 /ofagent/ofagent/main.py - ... Up compose_registrator_1 /bin/registrator -ip=10.0. ... Up compose_shovel_1 /shovel/shovel/main.py --k ... Up compose_voltha_1 /voltha/voltha/main.py -v ... Up 0.0.0.0:... compose_zookeeper_1 /bin/sh -c /usr/sbin/sshd ... Up 0.0.0.0:...
Shovel is known to have some startup race condition issues. If it is shown in the "Exited" state, a single attempt can be made to restart it, after which it should be healthy. To restart it, execute:
docker-compose -f compose/docker-compose-system-test.yml scale shovel=1
and repeat the above "ps" command to view the ensemble state:
docker-compose -f compose/docker-compose-system-test.yml ps
Point a Web Browser to the Consul UI to verify that all components are properly registered.
Point your browser to http://<server-ip-or-hostname>:8500/ui
using the actual IP address or valid DNS name of your Voltha server. The expected view is similar to the following:
Here every single exposed service end-point is shown (some components expose multiple end-points, while others expose no public endpoints).
Clicking on any of the items reveal further information like the specific IP address(es) and port number(s) for the service.