See also: JIRA link:
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
...
- Data producer API: Information Type and Information Producer
- Producer CALLBACKS: GET healthcheck (supervision); Information Job Creation/Modification/Delete.
- Data consumer API: Information Type Subscription Creation/Modification/Delete (REGISTERED/UNREGISTERED); Information Job (Creation/Modification/Delete) and GET Information Type
- Consumer CALLBACKS: POST Information Type Status: REGISTERED/UNREGISTERED invoked when a Information type status has been changed
- Service status API: Returns statistics such as Number of Producers Types and Jobs
...
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
...
Code Block | ||
---|---|---|
| ||
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:
...
Make sure to change the IP and to point at the correct rapp csar package.
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://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.
...