Table of Contents |
---|
Introduction
This wiki is meant to detail the approach and steps taken to automate the deployment and testing of the ORAN SC SMO package based on ONAP including validating sample use cases.
Driver
Automation is key nowadays and deployment and testing needs to be repeatable and portable.
...
The setup as pictured in this wiki, is by no means closed, it can be easily extended thanks to the flexibility of all the tools that were chosen.
SMO Package based on ONAP
The SMO package is accessible on ORAN gerrit in the "it/dep" repo: https://gerrit.o-ran-sc.org/r/gitweb?p=it/dep.git;a=tree;f=smo-install;h=2e4539d6c3c2e2a274d1913c89df371c956f0793;hb=HEAD
...
- Layer 0: Setup the node (microk8s, helm, chartmuseum, tests tools, etc ...)
- Layer 1: Build the helm charts and upload them to chart museum
- Layer 2: Deploy SMO with specific flavors, deploy network simulators, deploy CI/CD tool, etc ...
Architecture
The picture below describes the environment from a high level and the various entities that are deployed with this setup
...
This layout provides all the needed configuration for the embedded Jenkins instance to interact with the cluster and connect to remote repositories
Deployment guide
Minimum Requirements
The target deployment environment is quite flexible thanks to the chart configurations and options.
...
- 6 or more CPU cores
- 20 G of RAM
- 60G of disk (mostly used to store container images
- Ubuntu 20.04 LTS
Installation
Note : make sure your user has enough privileges to execute the commands that are listed below, some may imply to grant your user sudo privileges or manipulate users/groups so that these can be executed
...
User guide
This section describes how to access and use the setup that has been deployed, it allows the user to configure, run and analyze tests results on ORAN SC package, it can also serve as a validation tool for incoming code changes
1) accessing
Once the system is boot strapped, a new namespace called 'test' should appear on your Kubernetes environment.
...
It is possible to login to the Jenkins instance (to see/modify the configuration) by using the default login/password (test/test) - this can be overriden in overrides files (see above at installation part)
2) Running the tests
To execute the tests, there are 2 options :
...
Logs/results can be accessed through the workspace available in the job execution UI, execution history, trends and step details can also be accessed through Jenkins interface
3) Understanding the tests
There are 2 sets of tests being run by the tool :
Unit tests
They are typically used to validate the ORAN SDK methods at a unit level, every time a new method is added to the ORAN SDK it must be validated by a simple unit test.
The pyTest framework is used to execute them.
Integration tests
These tests make use the ONAP/ORAN Python SDK to validate specific SMO usecases. They can initialize, provision, verify, trigger, etc ... the different ONAP/ORAN components started by the SMO package. They need to be executed within the Kubernetes cluster or directly on a Kubernetes node as the tests need access to the virtual networks created by the kubernetes cluster.
4) Python SDK tests and how to add/enhance tests
Demo Recording
Plan:
- What is the SMO package
...
- What is the ONAP/ORAN python SDK
- SMO Nomad CI/CD jenkins