Versions Compared

Key

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

...


1. Authorization check: POST to the Authentication Agent (from the starting config config/application.yaml )
2. Validation: The URLs are used only for URI validation
3. Consumer starts a job on the Producer POST producerCallbacks.startInfoSubscriptionJob->restClient.post(producer.getJobCallbackUrl(), jobCallbackBody(infoJob))  

ICS Callbacks Flow



Demo Application - Java Producer and Consumer 


Sample application: ics-producer-consumer
Script for the demo: start.sh

bash start.sh



Running the script will check the requirements and start 4 containers:

...

Code Block
languagetext
Demo Producer Docker logs 

2024-04-02 12:48:05 INFO  c.d.p.p.SimpleProducer:141 - {"bootstrapServers":"kafka-zkless:9092","topic":"mytopic","source":"com.demo.producer.producer.SimpleProducer","message":"ygHwxXSIxW","key":"f8f1a7a7-a78e-4c7d-9b8d-108bb0cc9e2c"}
2024-04-02 12:48:06 INFO  c.d.p.p.SimpleProducer:141 - {"bootstrapServers":"kafka-zkless:9092","topic":"mytopic","source":"com.demo.producer.producer.SimpleProducer","message":"KNIbP10zfN","key":"b058d00f-bbcd-4d2c-936b-6327847d4c2a"}
2024-04-02 12:48:07 INFO  c.d.p.p.SimpleProducer:141 - {"bootstrapServers":"kafka-zkless:9092","topic":"mytopic","source":"com.demo.producer.producer.SimpleProducer","message":"V6fH1NkdeH","key":"ae1a83a3-d8a7-40c8-9d98-529230f8b585"}
2024-04-02 12:48:08 INFO  c.d.p.p.SimpleProducer:141 - {"bootstrapServers":"kafka-zkless:9092","topic":"mytopic","source":"com.demo.producer.producer.SimpleProducer","message":"m76qvRFh6f","key":"abccde52-fa72-4fd4-99ab-5bc21514d825"}
2024-04-02 12:48:09 INFO  c.d.p.p.SimpleProducer:141 - {"bootstrapServers":"kafka-zkless:9092","topic":"mytopic","source":"com.demo.producer.producer.SimpleProducer","message":"t7FJYnFr43","key":"0602239e-34e9-45a6-a04a-3c67b4c7d9e4"}

++++++++++++++++++++++++++++++++++++++++++++++++++++

Demo Consumer Docker logs 

2024-04-02 12:48:05 INFO  c.d.c.c.SimpleConsumer:158 - {"message":"Topic: mytopicMessage: ygHwxXSIxW"}
2024-04-02 12:48:06 INFO  c.d.c.c.SimpleConsumer:158 - {"message":"Topic: mytopicMessage: KNIbP10zfN"}
2024-04-02 12:48:07 INFO  c.d.c.c.SimpleConsumer:158 - {"message":"Topic: mytopicMessage: V6fH1NkdeH"}
2024-04-02 12:48:08 INFO  c.d.c.c.SimpleConsumer:158 - {"message":"Topic: mytopicMessage: m76qvRFh6f"}
2024-04-02 12:48:09 INFO  c.d.c.c.SimpleConsumer:158 - {"message":"Topic: mytopicMessage: t7FJYnFr43"}

++++++++++++++++++++++++++++++++++++++++++++++++++++

ICS logs

2024-04-02T12:48:05.615Z DEBUG 1 --- [or-http-epoll-2] o.o.i.c.r1producer.ProducerCallbacks     : Job subscription 1 started OK 1
2024-04-02T12:48:05.820Z DEBUG 1 --- [io-8083-exec-10] o.o.i.repository.InfoTypeSubscriptions   : Added type status subscription 1


GUI Consoles and Panels

Automatic

Running the script : red.sh will

...

bash red.sh --skip-build --no-console

Manual

Redpanda Console: 

After kafka is up and running 

docker-compose -f docker-composeRedPanda.yaml up -d

Redpanda console available at: http://localhost:8888



Manual NONRTRIC-controlpanel:

git clone "https://gerrit.o-ran-sc.org/r/portal/nonrtric-controlpanel"

Changed the configuration files as shown here: 

...

docker-compose -f ./nonrtric-controlpanel/docker-compose/docker-compose.yaml \
               -f ./nonrtric-controlpanel/docker-compose/control-panel/docker-compose.yaml \
               -f ./nonrtric-controlpanel/docker-compose/nonrtric-gateway/docker-compose.yaml up -d

ICS informations displayed here: http://localhost:8181


ICS-PRODUCER AND CONSUMER onboard and deploy with RAPPMANAGER

Overview

This documentation outlines the steps for testing the installation of the rAppManager on a remote Kubernetes deployment. The setup is conducted on an OpenStack Kubernetes v1.24 cluster on AKS (Azure Kubernetes Service).

Prerequisites

  • Access to a Kubernetes cluster (OpenStack Kubernetes v1.24 on AKS).
  • Git installed on your local machine.
  • Postman installed on your local machine.

Installation Steps

Step 1: Clone the Repository on your k8s cluster

Clone the RappManager repository using the following command:

git clone "https://gerrit.o-ran-sc.org/r/nonrtric/plt/rappmanager"

Step 2: Run Installation Scripts

Navigate to the rappmanager/scripts directory and run the installation script (the parameter dev will install the latest snapshot images):

cd ~/rappmanager/scripts
sudo ./install-all.sh dev

Step 3: Generate Sample Rapp Files

Navigate to the sample-rapp-generator directory and run the generation scripts:

cd ~/rappmanager/sample-rapp-generator
bash generate.sh rapp-sample-ics-producer/
bash generate.sh rapp-sample-ics-consumer/

Step 4: Retrieve Generated Files

After running the generation scripts, retrieve the following generated files, and download them onto your machine:

  • rapp-sample-ics-producer.csar
  • rapp-sample-ics-consumer.csar

Step 5: Onboard and Deploy Rapps using Postman

Use the provided Postman collection to manage the RappManager. The following actions can be performed:

  1. Onboard the Rapp
  2. Prime the Rapp
  3. Create an Instance
  4. Deploy the App Instance

Ensure you follow the sequence of actions as specified in the Postman collection to complete the deployment process successfully.

View file
nameRapp-Manager-sample producer-consumer.postman_collection.json
height250

Make sure to change the IP and to point at the correct rapp csar package.
Image AddedImage Added

Step 6: Start Producer and Consumer

You can use this endpoint to start the app to produce/consume

sudo kubectl run curlpod -n nonrtric --image=radial/busyboxplus:curl --rm -it -- /bin/sh -c "curl -X GET http://producer-service:8080/startProducer/mytopic"
sudo kubectl run curlpod -n nonrtric --image=radial/busyboxplus:curl --rm -it -- /bin/sh -c "curl -X GET http://consumer-service:8081/startConsumer/mytopic"

Conclusion

Following the above steps will allow you to install and test the rAppManager on a Kubernetes cluster. Ensure you have all necessary permissions and prerequisites before beginning the installation process.