[IEC-46] [IEC][SEBA] Upgrade to Voltha 2.3 Created: 05/May/20  Updated: 26/Jun/20

Status: In Progress
Project: Integrated Edge Cloud
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Medium
Reporter: Ciprian Barbu Assignee: Catalin Iova
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File 0001-Voltha-2.x-automation-tools-example.patch     Text File 0001-Voltha-2.x-bbsim-fix.patch     Text File 0001-Voltha-2.x-helm-charts-updates.patch     Text File 0001-Voltha-2.x-onos-fix.patch     Text File 0001-voltha-2.x-public-kafka-and-etcd-clusters-automation.patch     Text File 0001-voltha-2.x-public-kafka-and-etcd-clusters.patch    

 Description   

With the recent release of Voltha 2.3 in Opencord, we should also look into integrating into our own version as well.

In regards to SEBA as a whole, right now there is no new release other than the old 2.0-alpha1, and the next release is scheduled for end of year, which should be version 2.0. Depending on the SEBA chart requirement, we might have to upgrade some of the other components, besides Voltha, but these will be handled as needed.



 Comments   
Comment by Catalin Iova [ 26/Jun/20 ]

There will be need of olt-service and XOS updates for SEBA 2.0 in order to work with voltha 2.x architecture.

Comment by Catalin Iova [ 24/Jun/20 ]

New voltctl can be used from: https://github.com/opencord/voltctl or from https://github.com/ciena/voltctl

Building  https://github.com/opencord/voltctl:

  1. Ensure go 1.13 or later is installed
  2. make build, then make install

Building https://github.com/ciena/voltctl:

  1. Get release source files into <go dir>/src/github.com/ciena/voltctl
  2. make build, then make install
Comment by Catalin Iova [ 23/Jun/20 ]

Fix patches attached: 0001-Voltha-2.x-bbsim-fix.patch 0001-Voltha-2.x-onos-fix.patch

Comment by Catalin Iova [ 11/Jun/20 ]

ONOS 2.2.2 is used for voltha 2.3 and new ONOS applications. Source code and documentation: https://docs.voltha.org/2.3.0/release_notes/voltha_2.3.html

There is no onos 2.2.2 chart in opencord for the moment but https://charts.opencord.org/onos-3.0.1.tgz can be used to use the updates for deployment and log using new karaf version 4.2.8

Comment by Catalin Iova [ 05/Jun/20 ]

Patches attached for using non private kafka and etcd clusters so all pods can share it not just voltha pods: 

0001-voltha-2.x-public-kafka-and-etcd-clusters.patch

0001-voltha-2.x-public-kafka-and-etcd-clusters-automation.patch

Comment by Catalin Iova [ 03/Jun/20 ]

The new voltha 2.x architecture is very different by the old 1.x voltha and requires several updates in seba that are current unavailable in opencord charts. One of the updates due architecture changes is that voltha APIs differs and are used over gRPC over http2 instead of restful APIs. Also ssh access seems unavailable even if it is documented (ssh pod and service is missing). Due voltha API limitation volt seba service will need updates and not only but seems to be unavailable in opencord at this time. Regarding ssh missing, it seems voltctl tool is available and shall be enough to debug the devices and some limited configuration. 

Comment by Catalin Iova [ 03/Jun/20 ]

Patches for helm-charts and automation tools attached: 0001-Voltha-2.x-helm-charts-updates.patch respective 0001-Voltha-2.x-automation-tools-example.patch and includes:

  1. charts updates
  2. New voltha230 and related components like adapters and simulator charts added
  3. bbsim added
  4. Installing voltha after onos according opencord recommendation due some potential errors in onos
Comment by Catalin Iova [ 03/Jun/20 ]

Voltha is installed from opencord for testing using the following commands (voltha 2.3 example):

git clone https://gerrit.opencord.org/voltha-test-manifest.git -b voltha-2.3
sudo apt-get install repo
git clone https://gerrit.googlesource.com/git-repo
repo init -u https://gerrit.opencord.org/voltha-test-manifest.git -b voltha-2.3 --current-branch
repo forall -c "git reset --hard"
repo sync -d -c -q --force-sync --jobs=4
repo manifest -o - -r
git rev-parse HEAD
sudo snap install yq
./kind-voltha/voltha

./kind-voltha/voltha is the script from where can be seen how helm is used to install voltha components, onos, kafka, etcd and other commands like port forwarding.

 

Voltha robot tests can be run from voltha-system-tests as follows:

1. make vst_venv

2. source ./vst_venv/bin/activate ; set -u ;

3. cd tests/functional

4. VOLTCONFIG=/.volt/config KUBECONFIG=/.kube/config robot -V <full path here>/voltha-system-tests/tests/data/bbsim-kind.yaml Voltha_PODTests.robot

Comment by Catalin Iova [ 18/May/20 ]

Remains to investigate other SEBA components dependent of voltha 2.3.

Comment by Catalin Iova [ 18/May/20 ]

First investigation was done in regard of building all necessary images for voltha 2.3. The following images are build (pushed in iecedge hub.docker.com) as below:

ofagent-go 1.1.6/1.1.7 (iecedge/voltha-ofagent-go_arm64):
1. git clone https://github.com/opencord/ofagent-go
2. git checkout v1.1.6 v1.1.7
3. make build

rw-core 2.3.5 (iecedge/voltha-rw-core_arm64:2.3.5):
1. git clone https://github.com/opencord/voltha-go
2. git checkout v2.3.5 v2.3.6
3. make build

voltha-python-base 1.0.0 (iecedge/voltha-python-base:1.0.0):
1. git clone https://github.com/opencord/voltha-python-base
2. git checkout 1.0.0
3. Update Docker file adding:
3.1. Install libxml2-dev libxslt-dev
3.2. RUN wget https://github.com/edenhill/librdkafka/archive/v0.11.6.tar.gz && tar xzf v0.11.6.tar.gz {color}
&& cd librdkafka-0.11.6/ {color}
&& ./configure --prefix=/usr {color}
&& make -j {color}
&& make install {color}
&& cd .. {color}
&& rm -rf librdkafka-0.11.6/
4. make docker-build

ofagent-py 2.2.7 (iecedge/voltha-ofagent-py_arm64:2.2.7):
1. git clone https://gerrit.opencord.org/ofagent-py
2. git checkout 2.2.7
3. make docker-build

voltha-python-base 2.0.0 (iecedge/voltha-python-base:2.0.0):
1. git clone https://github.com/opencord/voltha-python-base
2. git checkout 2.0.0
3. Update Dockerfile modifying versions:
3.1 File Dockerfile:

-openssl=1.1.1d-0+deb10u2 \
+ openssl=1.1.1d-0+deb10u3 \

-git=1:2.20.1-2 \
+ git=1:2.20.1-2+deb10u3 \

-libssl-dev=1.1.1d-0+deb10u2 \
+ libssl-dev=1.1.1d-0+deb10u3 \
+ zlib1g-dev \

3.2. File requirements.lock:

-pyflakes==2.1.0
+ pyflakes==2.2.0

4. make docker-build

voltha-openolt-adapter:2.3.23 (iecedge/voltha-openolt-adapter_arm64:2.3.23):
1. git clone https://github.com/opencord/voltha-openolt-adapter
2. git checkout v2.3.23
3. make build

voltha-openonu-adapter:2.3.6 (iecedge/voltha-openonu-adapter_arm64:2.3.6):
1. git clone https://github.com/opencord/voltha-openonu-adapter
2. git checkout v2.3.6
3. make build

voltha-adapter-simulated-olt:2.2.3 (iecedge/voltha-adapter-simulated-olt_arm64:2.2.3):
1. git clone https://github.com/opencord/voltha-simolt-adapter
2. git checkout v2.2.3
3. Change Dockerfile.simulated_olt from git=2.20.2-r0 into git=2.20.4-r0
4. make build

voltha-adapter-simulated-onu:2.2.3 (iecedge/voltha-adapter-simulated-onu_arm64:2.2.3):
1. git clone https://github.com/opencord/voltha-simolt-adapter
2. git checkout v2.2.3
3. Change Dockerfile.simulated_olt from git=2.20.2-r0 into git=2.20.4-r0
4. make build

 

Generated at Sat Feb 10 06:02:24 UTC 2024 using Jira 9.4.5#940005-sha1:e3094934eac4fd8653cf39da58f39364fb9cc7c1.