add the XTesting for AI/ML training host deployment use case
[it/test.git] / ric_robot_suite / helm / nanobot / README
index ce2b1e4..64ff5a6 100644 (file)
 This directory contains a Helm chart for the minimal robot container
 and Kubernetes job.
 
+Before executing the nanobot test please do the following procedures
+Deploy E2sim:
+============
+
+1. Deploy RIC platform
+
+2. kubectl rollout restart deployment --namespace ricplt deployment-ricplt-e2mgr deployment-ricplt-e2term-alpha (The e2mgr and e2term need to be restarted; this is due to some issues with health check; I don’t know whether it has been resolved by that team)
+
+3. clone sim/e2-interface
+
+4. In the root directory of e2sim: Follow directions in README to produce the deb files
+
+5. Since the deb files are not yet pushed to package cloud, we need to copy them
+
+6. cp e2sim*deb ../e2sm_examples/kpm_e2sm
+
+7. cd ../e2sm_examples/kpm_e2sm
+
+8. Edit the Dockerfile at the bottom to have IP address of service-ricplt-e2term-sctp-alpha service
+
+9. docker build .
+
+10. docker tag <tag just built> e2simul:0.0.2
+
+11. Once deployed, kubectl logs will show:
+
+An E2 Setup Request from E2 Simulator to E2 Term
+An E2 Setup Response from E2 Term to E2 Simulator
+
+Deploy Bouncer Xapp in common way:
+==================================
+
+Follow the link to deploy xapps
+https://wiki.o-ran-sc.org/display/IAT/AD+xApp+Flows
+
+1.Preparing an xApp for onboarding:
+
+echo '{"config-file.json_url": "https://gerrit.o-ran-sc.org/r/gitweb?p=ric-app/ts.git;a=blob_plain;f=xapp-descriptor/config.json;hb=HEAD" }' > onboard.ts.url
+
+
+2. Onboarding xApps:
+Invoke the API calls into the xApp On-boarder, providing it the locations of the xApp descripters.
+curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.ts.url"
+
+3. Checking the on-boarded charts:
+curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"
+
+4. Deploying Xapp:
+curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "trafficxapp"}'
+
+Deploy KPIMONXapp:
+==================
+currently KPIMON deployment must be done in the following way:
+
+https://wiki.o-ran-sc.org/display/IAT/Traffic+Steering+Flows
+
+
+1. clone scp/ric-app/kpimon (note it is different than the ric-app/kpimon repo)
+2. docker build .
+3. docker tag <image tag just created> nexus3.o-ran-sc.org:10002/ric-app-kpimon:1.0.0
+4 .curl -X POST --data-binary @xappkpimon-0.2.0.tgz http://<vm-name>:32080/helmrepo/api/charts (Push hand-crafted helm chart to appmgr chart museum)
+
+Once Xapp deployed
+
+1.Checkout the it/test repo
+2.Modify Values.yaml based on your Xapp deployment name, Xapp name and E2sim deployment with PLMID, GNBID update.
+ric_robot_suite/helm/nanobot/values.yaml.
+3.Add testsuites name based on our testing.
+Note: Only one xapp to E2sim test is possible.
+
+==================================================================================================================================================================================
+Subscription Duplication Deployment
+====================================
+The above E2sim deployment procedures are same. For Bouncer xApp deployment please follow up below steps.
+
+Scenario-1:
+==========
+Deploy 2 bouncer xapps with intermission delay of 2 to 5secs.
+1. Use 2 different paths for 2 xapps configfile and modify xappname based on your requirement in configfile.
+
+2.Use local config file shared path for preparing an xApp onboarding:
+
+examples:
+echo '{"config-file.json_url": "https://${hostname}:8090/config.json" }' > onboard.bouncer.url
+echo '{"config-file.json_url": "https://${hostname}:8090/anotherxapp/config.json" }' > onboard.bouncer_another.url
+
+3. Onboarding xApps:
+Invoke the API calls into the xApp On-boarder, providing it the locations of the xApp descripters.
+curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.bouncer.url"
+curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.bouncer_another.url"
+
+4. Checking the on-boarded charts:
+curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"
+
+5. Deploying Xapp:
+curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncerxapp"}'
+delay 2 to 5secs
+curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncerxapp_1"}'
+
+Once Xapp deployed
+
+1.Checkout the it/test repo
+2.Modify Values.yaml based on your Xapp deployment- 2 Xapp names and E2sim deployment with PLMID, GNBID update.
+ric_robot_suite/helm/nanobot/values.yaml.
+3.Add testsuites name "subscription_duplication_scenario1".
+Note: Only bouncer xapps to E2sim test possible.
+
+
+Scenario-2:
+===========
+Deploy 1 bouncer xapp by following the below procedure
+
+1.Use local config file shared path for preparing an xApp onboarding:
+
+examples:
+echo '{"config-file.json_url": "https://${hostname}:8090/config.json" }' > onboard.bouncer.url
+
+2. Onboarding xApps:
+Invoke the API calls into the xApp On-boarder, providing it the locations of the xApp descripters.
+curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.bouncer.url"
+
+3. Checking the on-boarded charts:
+curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"
+
+4. Deploying Xapp:
+curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncerxapp"}'
+
+Ensure on bouncer xapp logs to check upto indication packets received from E2sim.
+
+Deploy 2 bouncer xapp
+
+1.Use local config file shared path for preparing an xApp onboarding:
+
+examples:
+echo '{"config-file.json_url": "https://${hostname}:8090/anotherxapp/config.json" }' > onboard.bouncer_another.url
+
+2. Onboarding xApps:
+Invoke the API calls into the xApp On-boarder, providing it the locations of the xApp descripters.
+curl --location --request POST "http://$(hostname):32080/onboard/api/v1/onboard/download" --header 'Content-Type: application/json' --data-binary "@./onboard.bouncer_another.url"
+
+4. Checking the on-boarded charts:
+curl --location --request GET "http://$(hostname):32080/onboard/api/v1/charts"
+
+5. Deploying Xapp:
+curl --location --request POST "http://$(hostname):32080/appmgr/ric/v1/xapps" --header 'Content-Type: application/json' --data-raw '{"xappName": "bouncerxapp_1"}'
+
+
+Once Xapp deployed
+
+1.Checkout the it/test repo
+2.Modify Values.yaml based on your Xapp deployment- 2 Xapp names and E2sim deployment with PLMID, GNBID update.
+ric_robot_suite/helm/nanobot/values.yaml.
+3.Add testsuites name "subscription_duplication_scenario2" .
+Note: Only bouncer xapps to E2sim tests possible.
+
+
+===============================================================================================================================================
+
+Follow the below steps for nanobot testing.
 USING THE CHART
 To install the chart (which creates and runs a single Kubernetes job),
 first copy the packaged Common-Template chart (from
@@ -73,4 +232,5 @@ collide across those directories, particularly between trees.
 The job uses the nanobot docker image built by
 ric_robot_suite/docker/nanobot/Dockerfile; see
 ric_robot_suite/docker/nanobot/README for information about the
-image.
\ No newline at end of file
+image.
+