You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Introduction

This wiki is meant to detail the approach and steps taken to automate the deployment and testing of the ORAN SC SMO package including validating sample use cases.

Driver

Automation is key nowadays and deployment and testing needs to be repeatable and portable.

In order to achieve a certain level of automation with the ORAN SC software we took the following steps :

  1. Create a simple deployment method, reusing the work that was done by ONAP : see SMO package (link to be added)
  2. Reuse existing testing automation tools that were successfully used in ONAP : see Python-SDK (link to be added)
  3. Extend the deployment mechanics to provide a self contained, portable setup that can validate sample use cases on various type of deployment


The End goal is to provide the community with a mean to deploy the SMO and its test environment with a minimum set of requirements, ultimately this setup can be used on a lab to automatically validate code changes and report issues directly in code review tools.

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.


Architecture

The picture below describes the environment from a high level and the various entities that are deployed with this setup

The basis is a standard VM or node running a recent Ubuntu release where a Kubernetes cluster is setup (that cluster can also be remote if needed as long as it is accessible from the host VM)

The deployment layout is explained in the readme file of the repository but in a nutshell it is composed of :

  • helm charts to deploy the
    • SMO, the simulators
    • a dedicated embedded jenkins instance
    • an Helm Chart repository to store locally useful charts for the setup
  • utility scripts to help setup the environments from a basic Ubuntu VM or node
  • a set of Python SDK tests cases that are executed


The Jenkins instance will act as a Meta executor to orchestrate the deployment and execute the set of tests.

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.

The minimum setup requires :

1 VM or host with

  • 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


Download the IT/dep repository from gerrit at the following location :


git clone --recurse-submodules https://gerrit.o-ran-sc.org/r/it/dep.git


Note that you need to add the recurse sub modules flag as some parts are git submodules pointing to existing related charts (ONAP)


The installation is quite straight forward, several utility scripts are available from the repository to allow the user to setup all/some of the components independently

Please have a look at the embedded readme file located under dep/smo-install, it provides a full description of the content and how to setup various flavors of the environment


https://gerrit.o-ran-sc.org/r/gitweb?p=it/dep.git;a=blob_plain;f=smo-install/README.md;hb=refs/heads/master

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.

you should be able to access the jenkins instance by opening a browser to :

http://<your k8s host>:32080/


All Jobs are auto provisioned by the deployment to be able to :

  • Connect to a remote repository (sample for Github and Gerrit provided)
  • Auto discover branches and open pull requests / Gerrit reviews
  • Download changes from the repository, build deploy and tests
  • It is also possible to manually trigger Start / Stop / Test the SMO package (Job with the Manual keyword in the name)

2) Running the tests


3) Hooking with repositories


4) Understanding the tests


5) Python SDK tests and how to add/enhance tests


Demo Recording

Link to be added

Other resources

  • No labels