...
Our goal here is to demonstrate a work flow that deploy the OSC RIC platform and afterwards does a health check, which gives a pretty good idea on how it can be applied to other OSC projects. Then on top of the deployed RIC platform the kpimon-go xApp will be onboarded as a setup for further testing. Hopefully this can be used as a CI/CD pipeline in OSC to serve in the RICPLT/RICAPP areas and can also help automated test and integration.
...
- On the XTesting control node, some dependencies are to be installed which include:
- Openssl-server if it doesn’t come with the instance provisioned
- Docker
- XTesting dependencies (ansible etc.)
- All above are incorporated into a shell script called install-dependencies for your convenience
- On the SUT node:
- Openssl-server
- Install authorized key for remote ssh access (especially for root as it needs to copy over the .kube/config file). Otherwise one may have to configure user/password credentials to be used in the workflow.
It's a 34-step process in the workflow:
...
- Add a private key to the inventory/sample folder if a private key is used for ssh access.
- Build docker image: sudo docker build -t kubeadm .
- Run once it’s built successfully: sudo docker run -v ~/.kube:/kubeadm/config kubeadm // this will copy over the Kubernetes config file to the home directory
- Build a 2nd richelm container to complete the remaining steps for RIC platform deployment:
- git clone https://github.com/pekwatch746/richelm.git
- Build the container: sudo ./build.sh static
- Run with the Kubernetes configuration: sudo docker run -ti --rm -w /apps -v ~/.kube:/root/.kube -t richelmlegacy:1.19.16
- Run a health check test case against the SUT that's supposed to have the RIC platform successfully deployed. Below a simple robot script for health check:
---
- name: Shell module example
hosts: 127.0.0.1
tasks:
- name: Check system information
shell:
"curl -v http://155.98.36.9:32080/appmgr/ric/v1/health/ready 2>&1"
register: curl_info
- debug:
msg: "{{curl_info.stdout_lines}}” - Onboard/install the kpimon-go xApp from the XTesting host using ansible:
- git clone "https://gerrit.o-ran-sc.org/r/it/test"
- cd test/XTesting/xapp
- scp over the deploy.sh from the folder to the SUT node to the /root directory, and add a line of the IP address of the SUT node to the hosts.yaml file
run: ansible-playbook -b -v -i hosts.yaml --become --private-key $KEYFILE cluster.yaml
To make things easier I also put together a Shell script that combines the above steps so you can just run it in one shot:
git clone clone "https://github.com/pekwatch746gerrit.o-ran-sc.org/r/it/test"
cd test/XTesting/XTesting-demo .git&& sudo ./demo.sh target-ip private-key-file-path OPTIONAL-working-directory
...