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.

Changes in Progress!

In the meantime - see Release J - Run in Kubernetes

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

Table of Contents

NONRTRIC Architecture

...

Info

These instructions work on linux/MacOS or on windows via WSL using a local or remote kubernetes cluster.

It is recommended to run ranpm RANPM on a kubernetes cluster instead of local docker-desktop etc. as the deployment is somewhat resource intensive.

Requirement on Kubernetes

...

(RANPM Installation)

The demo set can be run on local or remote kubernetes cluster. Kubectl must be configured to point to the applicable kubernetes instance. Nodeports exposed by the kubernetes instance must be accessible by the local machine - basically the kubernetes control plane IP needs to be accessible from the local machine. (The installation scripts take care of getting a token form Istio, using dep/ranpm/install/scripts/kube_get_controlplane_host.sh as the baseurl. The K8s controlplane should be accessible from localhost)

Introduction to Helm Charts

...

Code Block
languagebash
titleEdit override file
<editor> ./dep/RECIPE_EXAMPLE/NONRTRIC/example_recipe.yaml 

...

There are many other parameters in the file that may require adaptation to fit a certain environment. For example hostname, namespace and port to kafka message router etc. These integration details are not covered in this guide.  

Code Block
languagebash
themeMidnight
titleEdit the override file
# Here you can enable inclusion or exclusion of each component. Disabled components will not be installed, and their later configurations will be ignored.
nonrtric:
  installPms: true
  installA1controller: true
  installA1simulator: true
  installControlpanel: true
  installInformationservice: true
  installRappcatalogueservice: true
  installRappcatalogueenhancedservice: true
  # Enable either installNonrtricgateway or installKong. Both cannot be enabled at the same time
  installNonrtricgateway: false
  installKong: true 
  installDmaapadapterservice: true
  installDmaapmediatorservice: true
  installHelmmanager: true
  installOrufhrecovery: true
  installRansliceassurance: true
  installCapifcore: true
  installServicemanager: true
  # When enabling Ranpm, set value false above for installControlpanel, installInformationservice, installNonrtricgateway
  installRanpm: false
  # rApp Manager functionality relies on ONAP ACM for its operation
  installrAppmanager: true
  # DME Participant should only be activated when ONAP ACM installation is available for this participant to utilize
  installDmeParticipant: false

  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
    hostPath: /var/nonrtric/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
    hostPath: /var/nonrtric/ics-storage
  volume3:
    size: 1Gi
    storageClassName: helmmanager-storage

...
...
...

...

Code Block
languagebash
titleInstall Charts using the script: deploy-nonrtric.sh
sudo ./dep/bin/deploy-nonrtric -f ./dep/nonrtric/RECIPE_EXAMPLE/example_recipe.yaml

...

Note
iconfalse

If the "Default storage class" is not set then Kong PV and PVC creation may fail and that's specified in nonrtric/helm/kongstorage/kongvalues.yaml
Only Check the default StorageClass or ONLY for development proposes persistence can be disabled:
sed -i '/persistence:/,/existingClaim:/s/existingClaim: .*/enabled: false/' ./nonrtric/helm/kongstorage/kongvalues.yamldisable kong-postgres  persistence

Installing / Uninstalling the RAN PM functions

...

Code Block
languagebash
titleUndeploy Nonrtric
sudo ./dep/bin/undeploy-nonrtric.sh

Troubleshooting A1-Policy functions

...

  • Verify the A1 PMS logs to make sure that the connection between A1 PMS and a1controller is successful. 
    • Command to check pms logs

      Code Block
      languagebash
      titleKubernetes command to get PMS logs
      kubectl logs policymanagementservice-0 -n nonrtric


    • Command to enable debug logs in PMS (Command below should be executed inside k8s pods or the host address needs to be updated with the relevant port forwarding)

      Code Block
      languagebash
      titleEnabling debug logs in PMS
      curl --request POST \
      --url http://policymanagementservice:9080/actuator/loggers/org.onap.ccsdk.oran.a1policymanagementservice \
      --header 'Content-Type: application/json' \
      --data '{ "configuredLevel": "DEBUG" }'


  • Try removing the controller information in specific simulator configuration and verify the simulator are working without a1controller.

    Code Block
    languagebash
    titleapplication_configuration.json
    collapsetrue
    ...
     {
        "name":"ric1",
        "baseUrl":"https://a1-sim-osc-0.a1-sim:8185",
        "managedElementIds":[
           "kista_1",
           "kista_2"
          ]
     },
    ...


  • For troubleshooting the curl command is available in the can be used in controlpanel pod.

Example of local installation



sudo kind create cluster --config - <<EOF
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
  - role: control-plane
    extraPortMappings:
      - containerPort: 30091
        hostPort: 30091
        protocol: TCP
      - containerPort: 30093
        hostPort: 30093
        protocol: TCP
      - containerPort: 31575
        hostPort: 31575
        protocol: TCP
      - containerPort: 32080
        hostPort: 32080
        protocol: TCP
EOF

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

sed -i '/persistence:/,/existingClaim:/s/existingClaim: .*/enabled: false/' ./dep/nonrtric/helm/kongstorage/kongvalues.yaml && rm -rf ./dep/nonrtric/helm/kongstorage/templates

./dep/smo-install/scripts/layer-0/0-setup-charts-museum.sh

sudo ./dep/bin/deploy-nonrtric -f ./dep/nonrtric/RECIPE_EXAMPLE/example_recipe.yaml