Versions Compared

Key

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

...

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.

...

  1. On the XTesting control node, some dependencies are to be installed which include:
    1. Openssl-server if it doesn’t come with the instance provisioned
    2. Docker
    3. XTesting dependencies (ansible etc.)
    4. All above are incorporated into a shell script called install-dependencies for your convenience
  2. On the SUT node:
    1. Openssl-server
    2. 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 
  1. Build a 2nd richelm container to complete the remaining steps for RIC platform deployment:
  2. 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}}”
  3. 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

...