...
Please refer to the SEBA Blueprint Architecture Document for a high level architectural view of the SEBA Blueprint. The same principles and considerations apply here as well.
For a broader, more general view of the SEBA architecture, HW/SW requirements and usecases, please visit the upstream Opencord resources:
The same priniciples principles and guidelines apply for running SEBA on ARM as well, with the mention that running on ARM equipped HW generally requires a more in-depth knowledge of the HW and SW platform.
...
However, the SEBA 2.0-alpha release was not considered stable enough at the time of the release, so the development work has continued upstream until a more stable, development version was available and running in the Opencord Jenkins CI - SiaB Jobs.
...
could be used as a reference for porting.
Software base
The 2nd interation of the SEBA for ARM port uses a snapshot of the master (development) branch of the various Opencord components, which was taken at a point in time where it was stable enough to be considered for porting.
The components were forked porting was done on several key components from Opencord.
Main helm-charts repository
Opencord stores all the helm charts components in the helm-charts repository. This allows keeping the charts under version control and tracking changes by the developers.
The porting started out from this repository, which has been forked to the iecedge github account, at some point in the beginning of March 2020. In order to distinguish the iecedge work from the upstream branches, everything is separated on the cord-7.0-arm64 branch, as indicated. The base reference is commit 6622ff3.
It corresponds roughly to cord-platform-7.2.3 and seba-2.0.0-alpha1 but for specific chart versions of the charts and applications application versions you can consult the following spreadsheets from the Akraino Jira:
In summary, here are the most important components and their chart and application versions:
Component | Chart version | App Version | Comments |
---|---|---|---|
etcd-operator | 0.8.3 | 0.9.3 | |
kafka | 0.13.3 | 5.0.1 | |
zookeeper | 1.2.0 | v3 | |
ONOS | 2.0.1-b2 | 2.2.1-b5 | |
VOLTHA | 1.0.9 | 1.7.0 | |
xos-core | 3.0.13 | 3.3.1 | xos-tosca version 1.3.0 |
seba-services | 1.4.4 | N/A | see spreadsheet above for more details |
att-workflow | 1.3.0 | N/A | att-workflow driver chart version 1.1.2 appVersion 1.2.3 |
SEBA-in-a-Box and automation-tools
During the porting phase, it was decided to use SEBA-in-a-Box in the daily work, because it offers better view of the components involved and things that don't work. This has greatly helped with the porting work.
At the same time, SiaB is the only way that Opencord tests SEBA as a whole in daily jobs (see Opencord Jenkins CI - SiaB Jobs), and so it made sense to adopt the same tools and port them to ARM.
The main repository used for SiaB is the Opencord automation-tools. This has been forked to iecedge github account, also under the cord-7.0-arm64 branch. The base reference is commit 5220aeb.
Test framework - cord-tester
You can read more about the Opencord test framework at these locations:
For the purpose of validating SEBA for ARM in Akraino, only a part of the testing framework has been re-utilized.
Because testing a real usecase requires a complex setup and dedicated PON Hardware, for now only SEBA-in-a-Box has been ported and adapted to work in the Akraino CI.
This means adopting cord-tester and reproducing the SIAB stable Jenkins Job.
The cord-tester was forked to iecedge github account, under cord-7.0-arm64 branch. The base reference commit is 5ce76d4.
Deliverables and installation notes
Helm repository
SEBA is generally deployed using 3 set of charts, referred here as "combined charts" or "release charts":
- cord-platform
- seba
- workflow charts (e.g. att-workflow)
The usual method is to add a helm repository and then install these one by one, as described in the SEBA Blueprint Installation Guide.
For the 2nd iteration of the SEBA porting effort, a helm repository has been created using github.com pages. You can view the helm repo index.yaml here:
Step by step installation instructions as follows:
- Add the CORD repository and updated indexes
Code Block |
---|
helm repo add cord https://iecedge.github.io/helm-charts/cord
helm repo update |
- Install the CORD platform
Code Block |
---|
helm install -n cord-platform --version 7.2.3-dev-arm64 cord/cord-platform |
- Install SEBA
Code Block |
---|
helm install -n seba --version 2.0.0-dev-arm64 cord/seba |
- Install workflow
Code Block |
---|
helm install -n att-workflow --version 1.3.0 cord/att-workflow |