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 | ||||
---|---|---|---|---|
| ||||
<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 | ||||||
---|---|---|---|---|---|---|
| ||||||
# 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 | ||||
---|---|---|---|---|
| ||||
sudo ./dep/bin/deploy-nonrtric -f ./dep/nonrtric/RECIPE_EXAMPLE/example_recipe.yaml |
...
Note | ||
---|---|---|
| ||
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 |
Installing / Uninstalling the RAN PM functions
...
Code Block | ||||
---|---|---|---|---|
| ||||
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 language bash title Kubernetes 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 language bash title Enabling 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 language bash title application_configuration.json collapse true ... { "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 incontrolpanel
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