The standard (original) build environment for VOLTHA required the installation of many support tools or a custom Vagrant
VM with those same support tools installed on that VM.
This build guide walks through a VOLTHA build on a system that only support Docker. If after building VOLTHA, it is desired to run VOLTHA you will need a version of Docker that supports Swarm Mode or docker-compose
. It is recommended that you use the latest stable version of docker
.
17.06.0-ce
or later recommended, the latest stable version preferred.git clone http://gerrit.opencord.org/voltha
cd voltha # if you are not alread in the voltha directory VOLTHA_BUILD=docker make build
The build can take a little while, so feel free to get a cup of coffee, go for a short walk, or otherwise rest your mind. A build on a clean Ubuntu VM takes about 30 minutes. The actual time for a build depends on available network bandwidth and CPU speed.
VOLTHA runs as a Docker Swarm Stack. Thus, to run VOLTHA you should have initialized your Docker Swarm using
docker swarm init
After the swarm has been initialized VOLTHA can be started with
VOLTHA_BUILD=docker make start
Eventually all the VOLTHA service will be started. You can view the service list using
docker service ls
which should generate an output similar to
ID NAME MODE REPLICAS IMAGE PORTS db4sd6qr4ovd voltha_cli replicated 1/1 voltha-cli:latest *:5022->22/tcp f4am7jkrfkid voltha_consul global 1/1 consul:0.9.2 *:8300->8300/tcp,*:8400->8400/tcp,*:8500->8500/tcp,*:8600->8600/udp b0y0op65zijd voltha_fluentd replicated 1/1 voltha-fluentd:latest *:30011->24224/tcp qqqba5wdug8i voltha_fluentdactv replicated 1/1 voltha-fluentd:latest *:30010->24224/tcp aaba0xdriixw voltha_fluentdstby replicated 1/1 voltha-fluentd:latest *:30009->24224/tcp watbhno8ylf6 voltha_freeradius replicated 0/0 marcelmaatkamp/freeradius:latest *:1812->1812/udp,*:1813->1813/tcp,*:18120->18120/tcp q58ptpueojha voltha_kafka global 1/1 wurstmeister/kafka:latest *:9092->9092/tcp pqp9o1z0ojpz voltha_netconf global 1/1 voltha-netconf:latest *:830->1830/tcp sthhtxdv6trv voltha_ofagent replicated 1/1 voltha-ofagent:latest uk8c7f3cutpn voltha_onos replicated 1/1 voltha-onos:latest *:6653->6653/tcp,*:8101->8101/tcp,*:8181->8181/tcp jauyicnmzy2m voltha_onos_cluster_manager replicated 1/1 voltha-unum:latest *:5411->5411/tcp vnsladm0ar0b voltha_tools replicated 1/1 voltha-tools:latest *:4022->22/tcp on4hpyuwiyw2 voltha_vcore replicated 1/1 voltha-voltha:latest *:8880->8880/tcp,*:18880->18880/tcp,*:50556->50556/tcp u9g9vaip2nhf voltha_voltha replicated 1/1 voltha-envoy:latest *:8001->8001/tcp,*:8443->8443/tcp,*:8882->8882/tcp,*:50555->50555/tcp hyuak4pr8pt3 voltha_zk1 replicated 1/1 wurstmeister/zookeeper:latest hdshxxj1sxoj voltha_zk2 replicated 1/1 wurstmeister/zookeeper:latest y70234pasn6g voltha_zk3 replicated 1/1 wurstmeister/zookeeper:latest
After all the services are started you can access the VOLTHA CLI using ssh
ssh -p 5022 voltha@localhost
VOLTHA can be stopped with
VOLTHA_BUILD=docker make stop
The VOLTHA docker images are published on dockerhub.com
as the voltha
repository: https://hub.docker.com/u/voltha/
.
To run VOLTHA using this containers (and therefore not requiring a build) the following command can be used
REPOSITORY=voltha/ VOLTHA_BUILD=docker make start
NOTE: the slash (/
) at the end of the REPOSITORY
specification is required.
Running VOLTHA in this way should produce the following docker service ls
output
ID NAME MODE REPLICAS IMAGE PORTS 86iemjy8q1e1 voltha_cli replicated 1/1 voltha/voltha-cli:latest *:5022->22/tcp sm0zuqcq41go voltha_consul global 1/1 consul:0.9.2 *:8300->8300/tcp,*:8400->8400/tcp,*:8500->8500/tcp,*:8600->8600/udp vx5ir7dsciq3 voltha_fluentd replicated 1/1 voltha/voltha-fluentd:latest *:30014->24224/tcp x1ptzxq37cjw voltha_fluentdactv replicated 1/1 voltha/voltha-fluentd:latest *:30012->24224/tcp wfu6ebh3id6a voltha_fluentdstby replicated 1/1 voltha/voltha-fluentd:latest *:30013->24224/tcp h4r0z661t2u9 voltha_freeradius replicated 0/0 marcelmaatkamp/freeradius:latest *:1812->1812/udp,*:1813->1813/tcp,*:18120->18120/tcp hzhqj0rvjsh8 voltha_kafka global 1/1 wurstmeister/kafka:latest *:9092->9092/tcp vzewlgoxb3j6 voltha_netconf global 1/1 voltha/voltha-netconf:latest *:830->1830/tcp v1uj00lyzgj8 voltha_ofagent replicated 1/1 voltha/voltha-ofagent:latest bafqv7fvb1qb voltha_onos replicated 1/1 voltha/voltha-onos:latest *:6653->6653/tcp,*:8101->8101/tcp,*:8181->8181/tcp umams0s8jq6h voltha_onos_cluster_manager replicated 1/1 voltha/voltha-unum:latest *:5411->5411/tcp tnn5ce8x4k89 voltha_tools replicated 1/1 voltha/voltha-tools:latest *:4022->22/tcp h4c94dvhx0ig voltha_vcore replicated 1/1 voltha/voltha-voltha:latest *:8880->8880/tcp,*:18880->18880/tcp,*:50556->50556/tcp 9l5ubtie7lt4 voltha_voltha replicated 1/1 voltha/voltha-envoy:latest *:8001->8001/tcp,*:8443->8443/tcp,*:8882->8882/tcp,*:50555->50555/tcp k43f3a1wa0hv voltha_zk1 replicated 1/1 wurstmeister/zookeeper:latest kl5lpi0mt35e voltha_zk2 replicated 1/1 wurstmeister/zookeeper:latest t9eh5whkivfe voltha_zk3 replicated 1/1 wurstmeister/zookeeper:latest
Notice the image names in this output are prefixed with voltha/