Installation Guide¶
Introduction¶
Routing Manager is a basic platform service of RIC. It is responsible for distributing routing policies to other platform components and xApps.
Installation of routing manager in a k8s environment¶
This deployment guide is for testing routing manager in actual k8s environment.
Pre-requisites¶
Kubernetes v.1.16.0 or above
helm v2.12.3 or above
Appmgr pods should be deployed and in running state
Clone the ric-plt/dep git repository¶
git clone "https://gerrit.o-ran-sc.org/r/ric-plt/ric-dep"
Modify the deployment recipe¶
Locate for ‘rtmgr’ in the recipe file and edit the tag and repo.
rtmgr:
image:
registry: "nexus3.o-ran-sc.org:10004/o-ran-sc"
name: ric-plt-rtmgr
tag: 0.5.3
Copy the ric-common helm charts for it/dep, configure the helm repo and start local helm server
git clone "https://gerrit.o-ran-sc.org/r/it/dep"
HELM_HOME=$(helm home)
COMMON_CHART_VERSION=$(cat dep/ric-common/Common-Template/helm/ric-common/Chart.yaml | grep version | awk '{print $2}')
helm package -d /tmp dep/ric-common/Common-Template/helm/ric-common
cp /tmp/ric-common-$COMMON_CHART_VERSION.tgz $HELM_HOME/repository/local/
helm repo index $HELM_HOME/repository/local/
helm serve >& /dev/null &
helm repo remove local
helm repo add local http://127.0.0.1:8879/charts
At this stage, routing manager can be deployed.
cd ric-dep/bin
./install -f ../RECIPE_EXAMPLE/PLATFORM/example_recipe.yaml -c rtmgr
Checking the Deployment Status¶
Now check the deployment status after a short wait. Results similar to the output shown below indicate a complete and successful deployment. Check the STATUS column from both kubectl outputs to ensure that all are either “Completed” or “Running”, and that none are “Error” or “ImagePullBackOff”.
#helm list | grep rtmgr
r3-rtmgr 1 Wed Mar 25 08:34:22 2020 DEPLOYED rtmgr-3.0.0 1.0 ricplt
# kubectl get pods -n ricplt | grep rtmgr
deployment-ricplt-rtmgr-6446b96b65-8mxzn 1/1 Running 0 46s
Checking Container Health¶
Check the health of the routing manager platform component by querying it with the following command.
#kubectl get pods -n ricplt -o wide | grep rtmgr
deployment-ricplt-rtmgr-6446b96b65-8mxzn 1/1 Running 0 16m 10.244.0.17 master-node <none> <none>
curl -v http://10.244.0.17:8080/ric/v1/health/alive
* Trying 10.244.0.17...
* TCP_NODELAY set
* Connected to 10.244.0.17 (10.244.0.17) port 8080 (#0)
> GET /ric/v1/health/alive HTTP/1.1
> Host: 10.244.0.17:8080
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Wed, 25 Mar 2020 03:19:05 GMT
< Content-Length: 0
<
* Connection #0 to host 10.244.0.17 left intact
Undeploying Routing Manager¶
#helm delete --purge r3-rtmgr
Installation of routing manager in a standalone linux machine¶
This deployment guide will be useful for development purposes
Pre-requisites¶
Ubuntu machine
golang 1.12.1 minimum
Compiling Routing Manager¶
Clone the ric-plt/dep git repository.
git clone "https://gerrit.o-ran-sc.org/r/ric-plt/rtmgr"
Execute this shell script which will give you the rtmgr as executable
cd rtmgr/example
./rtmgr_exe.sh
Run rtmgr by passing the config file as parameter. Note that the rtmgr may abort after sometime as it needs appmgr to be running. This can be tweaked by modifying the actual code. As this would be needed only for actual Development, the sam eis not being mentioned here.
./rtmgr -f rtmgr-config.yaml