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

Compare with Current View Page History

« Previous Version 9 Next »

This wiki describes how to deploy the NONRTRIC components within Kubernetes cluster.

NONRTRIC Architechture

NONRTRIC composes of four major components,

  1. Control Panel
  2. Policy Management Service
  3. A1 Controller
  4. NearRT RIC Simulator




Introduction 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,

https://helm.sh/docs/intro/quickstart/

Helm Chart in NONRTRIC

In Release B, the helm chart's are written in IT/Dep repo.

The following picture shows the hierarchy of the nonrtric within IT/Dep repo. 

Each components in nonrtric repo are independent chart with common dependency of nonrtric-common.  The nonrtric chart acts a parent chart where other charts like a1controller, a1simulator, controlpanel & policymanagemenservice are added as dependencies in it.

The nonrtric-common contains the common template shared across all the nonrtric componenets. The nonrtric-common chart is added as a dependency into all the components (a1controller, a1simulator, controlpanel, policymanagemenservice & nonrtric)

Each component can be built & packaged independently of others and the required version can be deployed by adding the same into requirements.yaml file in nonrtric

Requirements.yaml
dependencies:
  - name: a1controller
    version: ~1.0.0
    repository: "@local"
  - name: a1simulator
    version: ~1.0.1
    repository: "@local"
  - name: controlpanel
    version: ~1.0.0
    repository: "@local"
  - name: policymanagementservice
    version: ~1.0.0
    repository: "@local"
  - name: nonrtric-common
    version: ^1.0.0
    repository: "@local"

The values.yaml file contains the default value of the individual components and it can be overridden with the override yaml file. The default values.yaml,

values.yaml
imagePullPolicy: IfNotPresent
image:
  registry: 'nexus3.o-ran-sc.org:10002/o-ran-sc'
  name: nonrtric-a1-controller
  tag: 1.7.4
replicaCount: 1
service:
  internalPort: 8181
  externalPort: 8282

Packaging & Repo update

All the logic behind the helm packaging & repo update are kept under deploy-nonrtric.sh file. This script crawls through the nonrtric directory and packages all the dependencies charts & copy it to the helm local repo.

deploy-nonrtric
# Package nonrtric-common and serve it using Helm local repo
HELM_HOME=$(helm home)
COMMON_CHART_VERSION=$(cat $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp $ROOT_DIR/../ric-common/Common-Template/helm/nonrtric-common
cp /tmp/nonrtric-common-$COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/

You can use the example override yaml or your custom yaml file to to invoke this script. Call the below command from /dep/bin directory,

run deploy command
root@vm1:~/dep/bin#./deploy-nonrtric -f ../nonrtric/RECIPE_EXAMPLE/example_recipe.yaml
  • No labels