Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Table of Contents

NONRTRIC Architechture

NONRTRIC composes of four major components,

...

Refer this page for more details

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.

...

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

Helm Chart in NONRTRIC

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

...

Code Block
languageyml
themeMidnight
titlevalues.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.

...

Code Block
languagetext
themeMidnight
titledeploy log
Successfully packaged chart and saved it to: /tmp/nonrtric-common-1.0.0.tgz
Packaging NONRTRIC components [controlpanel a1controller a1simulator policymanagementservice]
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Error: Unable to move current charts to tmp dir: rename /root/dep/nonrtric/helm/controlpanel/charts /root/dep/nonrtric/helm/controlpanel/tmpcharts: file exists
Error: found in requirements.yaml, but missing in charts/ directory: nonrtric-common
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 1 charts
Downloading nonrtric-common from repo http://127.0.0.1:8879/charts
Deleting outdated charts
Successfully packaged chart and saved it to: /tmp/a1controller-1.0.0.tgz
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 1 charts
Downloading nonrtric-common from repo http://127.0.0.1:8879/charts
Deleting outdated charts
Successfully packaged chart and saved it to: /tmp/a1simulator-1.0.1.tgz
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 1 charts
Downloading nonrtric-common from repo http://127.0.0.1:8879/charts
Deleting outdated charts
Successfully packaged chart and saved it to: /tmp/policymanagementservice-1.0.0.tgz
"local" has been removed from your repositories
"local" has been added to your repositories
Finished Packaging NONRTRIC components [controlpanel a1controller a1simulator policymanagementservice]

Deployment

This is where the actual deployment of the components into kubernetes cluster happens. The install script is responsible for identifying the namespace, helm release & parent chart to start the deployment process. It also creates the config map of the recipe file which is later used during uninstall process.  Once all the above are done, it will call the below command to deploy the nonrtric components,

...

Code Block
languagetext
themeMidnight
titleInstall log
Chart name- nonrtric
namespace/nonrtric created
configmap/nonrtric-recipe created
Deploying NONRTRIC components [controlpanel a1controller a1simulator policymanagementservice nonrtric]
Updating the Parent Chart [nonrtric]
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 5 charts
Downloading a1controller from repo http://127.0.0.1:8879/charts
Downloading a1simulator from repo http://127.0.0.1:8879/charts
Downloading controlpanel from repo http://127.0.0.1:8879/charts
Downloading policymanagementservice from repo http://127.0.0.1:8879/charts
Downloading nonrtric-common from repo http://127.0.0.1:8879/charts
Deleting outdated charts
NAME:   r2-dev-nonrtric
LAST DEPLOYED: Tue Apr 21 10:43:46 2020
NAMESPACE: nonrtric
STATUS: DEPLOYED

RESOURCES:
==> v1/ConfigMap
NAME                               DATA  AGE
controlpanel-configmap             1     1s
policymanagementservice-configmap  1     1s

==> v1/Service
NAME                     TYPE       CLUSTER-IP    EXTERNAL-IP  PORT(S)         AGE
a1controller             ClusterIP  10.43.34.119  <none>       8282/TCP        1s
dbhost                   ClusterIP  10.43.30.35   <none>       3306/TCP        1s
sdnctldb01               ClusterIP  10.43.89.176  <none>       3306/TCP        1s
a1-sim                   ClusterIP  None          <none>       8085/TCP        1s
controlpanel             NodePort   10.43.8.241   <none>       8080:30090/TCP  1s
policymanagementservice  NodePort   10.43.79.184  <none>       8081:30092/TCP  1s

==> v1/Deployment
NAME                     DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
a1controller             1        1        1           0          1s
db                       1        1        1           0          1s
controlpanel             1        1        1           0          1s
policymanagementservice  1        1        1           0          1s

==> v1/StatefulSet
NAME        DESIRED  CURRENT  AGE
a1-sim-osc  2        1        1s
a1-sim-std  2        1        1s

==> v1/Pod(related)
NAME                                      READY  STATUS             RESTARTS  AGE
a1controller-5c9f5b586c-wktgg             0/1    ContainerCreating  0         1s
db-549ff9b4d5-9skl5                       0/1    ContainerCreating  0         1s
controlpanel-5f4ccc78cb-lc97c             0/1    ContainerCreating  0         1s
policymanagementservice-79d5cdb475-lkhcn  0/1    ContainerCreating  0         1s
a1-sim-osc-0                              0/1    ContainerCreating  0         1s
a1-sim-std-0                              0/1    ContainerCreating  0         0s

Kubernetes Command

Once the above process completes without any error, you can check the status of all pod, services, deployments with below commands,

...