VOL-1450 OpenOLT is now built and run from its own repo
Remove build target from voltha-go. We can delete code later.
Also include a system-test that runs the containerized openonu
and openolt. Also a quickstart doc describing how to get it all
running.
Change-Id: I086bd41d776b39e0d765b5a4d92f6a850a46f1ce
diff --git a/compose/system-test.yml b/compose/system-test.yml
index 63e35c9..044adcd 100644
--- a/compose/system-test.yml
+++ b/compose/system-test.yml
@@ -135,21 +135,42 @@
adapter_openolt:
- image: "${REGISTRY}${REPOSITORY}voltha-adapter-openolt${TAG}"
+ image: "${REGISTRY}${REPOSITORY}voltha-openolt-adapter${TAG}"
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
command: [
- "/voltha/python/adapters/openolt/main.py",
+ "/voltha/adapters/openolt/main.py",
"-v",
"--name=openolt",
"--kafka_adapter=${DOCKER_HOST_IP}:9092",
"--kafka_cluster=${DOCKER_HOST_IP}:9092",
+ "--backend=etcd",
+ "--etcd=${DOCKER_HOST_IP}:2379",
+ "--core_topic=rwcore"
+ ]
+ networks:
+ - default
+ restart: unless-stopped
+
+
+ adapter_openonu:
+ image: "${REGISTRY}${REPOSITORY}voltha-openonu-adapter${TAG}"
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: "3"
+ command: [
+ "/voltha/adapters/brcm_openomci_onu/main.py",
+ "-v",
+ "--name=openonu",
+ "--kafka_adapter=${DOCKER_HOST_IP}:9092",
+ "--kafka_cluster=${DOCKER_HOST_IP}:9092",
"--core_topic=rwcore"
]
networks:
- default
restart: unless-stopped
-
diff --git a/python/Makefile b/python/Makefile
index 0276a91..c9bdcda 100644
--- a/python/Makefile
+++ b/python/Makefile
@@ -62,8 +62,7 @@
protoc \
protos \
adapter-ponsim-olt \
- adapter-ponsim-onu \
- adapter-openolt \
+ adapter-ponsim-onu
# The following list was scavanged from the compose / stack files as well as
# from the Dockerfiles. If nothing else it highlights that VOLTHA is not
@@ -89,7 +88,7 @@
FETCH_IMAGE_LIST = $(shell echo $(FETCH_BUILD_IMAGE_LIST) $(FETCH_COMPOSE_IMAGE_LIST) $(FETCH_K8S_IMAGE_LIST) | tr ' ' '\n' | sort -u)
-.PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) flake8 base openolt ponsim_olt ponsim_onu protos cli ofagent kafka common start stop tag push pull
+.PHONY: $(DIRS) $(DIRS_CLEAN) $(DIRS_FLAKE8) flake8 base ponsim_olt ponsim_onu protos cli ofagent kafka common start stop tag push pull
# This should to be the first and default target in this Makefile
help:
@@ -110,7 +109,6 @@
@echo "base : Build the base docker container used by all other dockers"
@echo "adapter_ponsim_olt : Build the ponsim olt adapter docker container"
@echo "adapter_ponsim_onu : Build the ponsim olt adapter docker container"
- @echo "adapter_openolt : Build the openolt adapter docker container"
@echo "ofagent : Build the openflow agent docker container"
@echo "tag : Tag a set of images"
@echo "push : Push the docker images to an external repository"
@@ -146,7 +144,7 @@
build: protoc protos containers
-containers: base adapter_ponsim_olt adapter_ponsim_onu adapter_openolt ofagent cli
+containers: base adapter_ponsim_olt adapter_ponsim_onu ofagent cli
base:
docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-base:${TAG} -f docker/Dockerfile.base .
@@ -154,9 +152,6 @@
adapter_ponsim_olt:
docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-adapter-ponsim-olt:${TAG} -f docker/Dockerfile.adapter_ponsim_olt .
-adapter_openolt:
- docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-adapter-openolt:${TAG} -f docker/Dockerfile.adapter_openolt .
-
adapter_ponsim_onu:
docker build $(DOCKER_BUILD_ARGS) -t ${REGISTRY}${REPOSITORY}voltha-adapter-ponsim-onu:${TAG} -f docker/Dockerfile.adapter_ponsim_onu .
diff --git a/quickstart.md b/quickstart.md
new file mode 100644
index 0000000..5903d97
--- /dev/null
+++ b/quickstart.md
@@ -0,0 +1,150 @@
+# Quickstart VOLTHA 2.x Build Setup.
+
+Starting point is a basic Ubuntu 16.04 installation with internet access.
+
+
+
+
+
+## Install prerequisites
+Patch and updated
+
+```sh
+sudo apt update
+sudo apt dist-upgrade
+```
+
+Add docker-ce repo and install docker and build tools
+```sh
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
+sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
+sudo apt update
+sudo apt install build-essential docker-ce docker-compose
+```
+
+Allow non-root user docker system access
+```
+sudo usermod -a -G docker $USER
+```
+Logout/Login to assume new group membership needed for running docker as non-root user.
+
+
+
+
+
+## Checkout source and build images
+
+### VOLTHA 2.0 Go Core
+```sh
+mkdir ~/source/
+cd ~/source/
+git clone https://gerrit.opencord.org/voltha-go.git
+```
+
+Build system needs to be told to create protos docker image.
+```sh
+export VOLTHA_BUILD=docker
+```
+
+Build Go docker images, rwcore being whats most needed for now:
+```sh
+cd ~/source/voltha-go
+make build
+```
+
+Build Python CLI and OFAgent docker images.
+```sh
+cd ~/source/voltha-go/python
+make build
+```
+
+
+
+### PyVoltha PIP Library
+
+Python library of common core functions. Once this stabilizes then you will no longer need a local build, the needed version will be in pip. Currently the plan is to push the pyvoltha pip library once a sprint into PyPi. Currently PyVoltha includes generated python stubs of voltha gRPC protos.
+
+```sh
+cd ~/source/
+git clone https://gerrit.opencord.org/pyvoltha.git
+```
+
+Generate the local tar.gz that is the dev version of pyvoltha:
+```sh
+cd ~/source/pyvoltha/
+make dist
+ls dist/
+```
+
+
+
+### VOLTHA 2.0 OpenOLT (python)
+
+```sh
+cd ~/source/
+git clone https://gerrit.opencord.org/voltha-openolt-adapter.git
+```
+
+Build the openolt container. Inform the Makefile to use a local build of PyVoltha. This will copy the pyvoltha tar.gz from the pyvoltha/dist build tree and include here. Once PyVoltha is stable this will not be needed.
+```sh
+export LOCAL_PYVOLTHA=true
+cd ~/source/voltha-openolt-adapter/python/
+. env.sh
+make build
+```
+
+
+
+### VOLTHA 2.0 OpenONU (python)
+
+```sh
+cd ~/source/
+git clone https://gerrit.opencord.org/voltha-openonu-adapter.git
+```
+
+Build the openonu container. Inform the Makefile to use a local build of PyVoltha. This will copy the pyvoltha tar.gz from the pyvoltha/dist build tree and include here. Once PyVoltha is stable this will not be needed
+```sh
+export LOCAL_PYVOLTHA=true
+cd ~/source/voltha-openonu-adapter/python
+. env.sh
+make build
+```
+
+
+
+
+
+## Test
+
+Run the combined compose file that starts the core, its dependent systems and the openonu and openolt adapters. Export an environment variable of your non-localhost ip address needed for inter-container communication.
+
+```sh
+export DOCKER_HOST_IP=##YOUR_LOCAL_IP##
+cd ~/source/voltha-go
+docker-compose -f compose/system-test.yml up -d
+```
+
+Verify containers have continuous uptime and no restarts
+```sh
+docker-compose -f compose/system-test.yml ps
+docker ps
+```
+
+Login to cli and verify. Password is admin
+```sh
+ssh -p 5022 voltha@localhost
+```
+
+Run voltha "devices" command to verify communication to etcd
+"table empty" is good
+```sh
+(voltha) devices
+Devices:
+table empty
+```
+
+At this point preprovision and enable olt, add flows using the CLI or ofagent.
+
+
+
+