...
- Gigabyte™ R120-T32 with Marvell® ThunderX® CN8890 Processors
- Gigabyte™ R281-T91 with Marvell® ThunderX2® CN9975 Processors
- Lenovo™ ThinkSystem HR330A with Ampere eMAG™ HR330A Processors
SEBA for ARM Porting Iteration 1
The initial effort for porting SEBA on ARM started officially in Akraino in early 2019. At that time, the upstream Opencord project had released CORD Platform 6.1 and SEBA 1.0 as described in the CORD 6.1 Guide.
Find more information in the related sub-pages:
- SEBA Porting on Armon ARM - porting and upstreaming work
- SEBA 1.0.0 for ARM Installation instructions
SEBA for ARM Porting Iteration 2
The latest effort for porting SEBA on ARM has since moved away from the old CORD Platform 6.1 and SEBA 1.0 because there was no more real interest in the upstream Opencord project to maintain them, and at the same time the operators were pushing for adding more functionality and make SEBA better in quality and production ready.
...
Note that at the moment, the work for verifying SEBA on ARM on TA is still in progress.
Base components
For this second iteration, the main base SW components that have been verified are as follows:
Component | Version | Comments |
---|---|---|
Base OS | Ubuntu 18.04 for aarch64 | CentOS should also work when deploying SEBA on TA for example |
Linux Kernel | 4.15.0-99-generic #100-Ubuntu | |
Kubernetes | 1.15.0-00 | |
Docker | 18.06.1~ce~3-0~ubuntu | |
helm | v2.12.3 | Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.12.3+unreleased", GitCommit:"cdc09e54bca50a53c1e54f0e67b15a0913f5af1d", GitTreeState:"dirty"} |
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 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.
...
The table below lists the components by categories:
Component | Chart version |
---|---|
Incubator | |
Zookeeper | 0.13.3 |
Kafka | 1.2.0 |
Stable | |
etcd-operator | 0.8.3 |
elasticsearch | 1.15.3 |
fluentd-elasticsearch | 1.4.1 |
grafana | 4.0.2 |
kibana | 1.1.2 |
logstash | 1.4.2 |
prometheus | 9.3.1 |
SEBA-in-a-Box and automation-tools
...
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.
...
SEBA is generally deployed using 3 set of charts, here referred here to as "combined charts" or "release charts":
...
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:
...
It is possible to install SEBA as individual components as well, using the forked iecedge/helm-charts - cord-7.0-arm64.
Note that at this moment, this is the only possible method to install SEBA for ARM by individual components. In contrast, the Opencord also delivers the individual components as packaged helm chart charts in their https://charts.opencord.org/ helm repo. However, using the git repository has the same effect, so functionality is not lost.
...
Once the installation is finished, you can also try to run the SIAB tests:
Code Block |
---|
make run-tests |
Continuous Integration work for SEBA on ARM
As with the other Blueprints in Akraino, SEBA is also periodically verified for correct functionality in the Akraino Jenkins infrastructure.
For the moment, the CI jobs make use of the IEC Type 2 Platform, deployed using the Fuel Installer. Alternatively, the IEC Type 2 Platform can also be deployed using the Compass Installer, which is not in the scope of this documentation.
Hardware setup
Please refer to the Deployment Architecture documentation for better understanding the HW setup and requirements.
At this moment, the Jenkins jobs for deploying and verifying SEBA on ARM, are running on a single POD, located in the ENEA Kista Lab, and connected to the Akraino Jenkins Master.
The jump host that connects to the Akraino Jenkins master is designated by the following Jenkins executor.
https://jenkins.akraino.org/computer/prd-ubuntu1804-dev-96c-256g-1/
There is also work in progress for adding another POD, the ThunderX2 Pod 2 from the Akraino Community Lab at UNH-IOL.
Jenkins pipeline
Currently, SEBA for ARM is verified as part of a bigger pipeline for IEC, which is located under the IEC Jenkins project:
https://jenkins.akraino.org/view/iec/job/iec-type2-fuel-baremetal-ubuntu1804-daily-master/
Note that at this moment, only IEC Type 2 Fuel Baremetal Jenkins jobs support deploying and testing SEBA.
Deploying on the virtual PODs in the Akraino Jenkins brings little value, because of performance penalties.
Also, the Fuel Installer is the only that has been verified, but Compass should work as well. However, there are currently no Compass Baremetal jobs, so the CI needs to be restricted to Fuel baremetal installations for now.
Jenkins jobs
As you can see, the parent job runs a few different jobs:
- iec-type2-deploy-fuel-baremetal-ubuntu1804-daily-master - this deploys the IEC Type 2 Platform using the Fuel Installer and Ubuntu 18.04 as base OS
- validation-enea-daily-master - IEC Blueprint Validation as per Akraino requirements
- iec-type2-install-seba_on_arm-fuel-baremetal-ubuntu1804-daily-master - deploys SEBA-in-a-Box using automation-tools
- iec-type2-test-seba_on_arm-fuel-baremetal-ubuntu1804-daily-master - runs the SEBA-in-a-Box Robot tests
For the test-seba_on_arm job, the robot logs are collected and sent to the Jenkins master for aggregation and visualization.