Release E - Run in Kubernetes
This wiki describes how to deploy the NONRTRIC components within Kubernetes cluster.
NONRTRIC Architecture
NONRTRIC comprises several components,
Control Panel
Policy Management Service
Information Coordinator Service
Non RT RIC Gateway (reuse of existing kong proxy is also possible)
R-App catalogue Service
NearRT RIC Simulator (3 A1 interface versions)
A1 Controller (currently using SDNC from ONAP)
Helm Manager
Dmaap Adapter Service
Dmaap Mediator Service
Use Case rApp O-DU Slice Assurance
Use Case rAPP O-RU Closed loop recovery
In the IT/Dep repo, there are helm charts for each these components. In addition, there is a chart called nonrtric, which is a composition of the components above.
Preparations
Download the the it/dep repository. At time of writing (Dec 2021) there is no branch for e-release so cloning can be made from master. Pls check if the branch exist before cloning from master.
Clone repo
git clone "https://gerrit.o-ran-sc.org/r/it/dep" -b e-release
or
git clone "https://gerrit.o-ran-sc.org/r/it/dep"Configuration of components to install
It is possible to configure which of nonrtric components to install, including the controller and a1 simulators. This configuration is made in the override for the helm package. Edit the following file
Edit override file
<editor> dep/RECIPE_EXAMPLE/NONRTRIC/example_recipe.yaml The file shown below is a snippet from the override example_recipe.yaml.
All parameters beginning with 'install' can be configured 'true' for enabling installation and 'false' for disabling installation.
For the parameters installNonrtricgateway and installKong, only one can be enabled.
There are many other parameters in the file that may require adaptation to fit a certain environment. For example hostname, namespace and port to message router etc. These integration details are not covered in this guide.
Editor override file
nonrtric:
installPms: true
installA1controller: true
installA1simulator: true
installControlpanel: true
installInformationservice: true
installRappcatalogueservice: true
installNonrtricgateway: true
installKong: false
installDmaapadapterservice: true
installDmaapmediatorservice: true
installHelmmanager: true
installOruclosedlooprecovery: true
installOdusliceassurance: true
volume1:
# Set the size to 0 if you do not need the volume (if you are using Dynamic Volume Provisioning)
size: 2Gi
storageClassName: pms-storage
volume2:
# Set the size to 0 if you do not need the volume (if you are using Dynamic Volume Provisioning)
size: 2Gi
storageClassName: ics-storage
volume3:
size: 1Gi
storageClassName: helmmanager-storage
...
...
...Installation
There is a script that packs and installs the components by using the helm command. The installation uses a values override file like the one shown above. This example can be run like this:
Deploy Nonrtric
sudo dep/bin/deploy-nonrtric -f dep/nonrtric/RECIPE_EXAMPLE/example_recipe.yamlResult of the installation
The installation will create one helm release and all created kubernetes objects will be put in a namespace. This name is 'nonrtric' and cannot be changed.
Once the installation is done you can check the created kubernetes objects by using command kubectl.
Example : Deployed pods when all components are enabled:
Get Pods
>sudo kubectl get po -n nonrtric
NAME READY STATUS RESTARTS AGE
a1-sim-osc-0 1/1 Running 0 12m
a1-sim-osc-1 1/1 Running 0 10m
a1-sim-std-0 1/1 Running 0 12m
a1-sim-std-1 1/1 Running 0 10m
a1-sim-std2-0 1/1 Running 0 12m
a1-sim-std2-1 1/1 Running 0 3m57s
a1controller-64c5b7fc56-hjx6l 1/1 Running 0 12m
controlpanel-6bf7c4bf79-m6hgl 1/1 Running 0 12m
db-76d79cd769-mngm4 1/1 Running 0 12m
dmaapadapterservice-0 1/1 Running 0 12m
dmaapmediatorservice-0 1/1 Running 0 12m
helmmanager-0 1/1 Running 0 12m
informationservice-0 1/1 Running 0 12m
nonrtricgateway-677988d5c7-rfm88 1/1 Running 0 12m
odusliceassurance-cd5b6f568-q89r5 1/1 Running 0 12m
oruclosedlooprecovery-568f867b45-b6zld 1/1 Running 0 12m
policymanagementservice-0 1/1 Running 0 12m
rappcatalogueservice-687d69756c-lvwrg 1/1 Running 0 12m
Un-installation
There is a script that uninstalls installs the NonRT RIC components. It is simply run like this:
Undeploy Nonrtric
sudo dep/bin/undeploy-nonrtricIntroduction to Helm Chart
In NONRTRIC we use Helm chart as a packaging manager for kubernetes. Helm chart helps developer to package, configure & deploy the application and services into kubernetes environment.
For more information you could refer to below links,