...
All components of the Non-RT RIC run as docker containers and communicate via a private docker network with container ports, ports also available on localhost. Details of the architecture can be found from Release E page.
Table of Contents |
---|
Project Requirements
Docker and docker-compose (latest)
- kubectl with admin access to kubernetes (minikube, docker-desktop kubernetes etc) - this is only applicable when running the Helm Manager
- helm with access to kubernetes - this is only applicable when running the Helm Manager example operations
Images
The images used for running the Non-RT RIC can be selected from the table below depending on if the images are built manually (snapshot image) or if release images shall be used.
...
Component (components marked with * is not released in E) | Release image and version tag | Manual snapshot (only available if manually built) and version tag |
---|---|---|
Policy Management Service | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-a1-policy-management-service:2.3.01 | o-ran-sc/nonrtric-a1-policy-management-service:2.3.01-SNAPSHOT |
Near-RT RIC A1 Simulator | nexus3.o-ran-sc.org:10002/o-ran-sc/a1-simulator:2.2.0 | o-ran-sc/a1-simulator:latest |
Information Coordinator Service | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-information-coordinator-service:1.2.01 | o-ran-sc/nonrtric-information-coordinator-service:1.2.01-SNAPSHOT |
Non-RT RIC Control Panel | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-controlpanel:2.3.0 | o-ran-sc/nonrtric-controlpanel:2.3.0-SNAPSHOT |
SDNC A1-Controller | nexus3.onap.org:10002/onap/sdnc-image:2.2.3 | Use release version |
Gateway* | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-gateway:1.0.0 | o-ran-sc/nonrtric-gateway:1.1.0-SNAPSHOT |
App Catalogue Service* | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-r-app-catalogue:1.0.12 | o-ran-sc/nonrtric-r-app-catalogue:1.10.02-SNAPSHOT |
Helm Manager | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-helm-manager:1.1.01 | o-ran-sc/nonrtric-helm-manager:1.1.01-SNAPSHOT |
Dmaap Mediator Producer | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-dmaap-mediator-producer:1.0.0 o-ran-sc/nonrtric-dmaap-mediator-producer:1.0.0-SNAPSHOT1 | Not applicable (Set as parameter for docker build ) |
Dmaap Adaptor Service | nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-dmaap-adaptor:1.0.01 | o-ran-sc/nonrtric-dmaap-adaptor:1.0.01-SNAPSHOT |
(*) Note: For images not released in E (components marked with *) the snap shot images built manually will get an image tag of one step above the release imaged tag.
Note: A version of this table appears Integration&Testing - E Release - E Release Docker Image List - NONRTRIC (E-Release). This is the authoritive version!
Ports
The following ports will be allocated and exposed to localhost for each component. If other port(s) are desired, then the ports need to be replaced in the container run commands in the instructions further below.
...
Component | Port exposed to localhost (http/https) |
---|---|
A1 Policy Management Service | 8081/8443 |
Near-RT RIC A1 Simulator | 8085/8185, 8086/8186, 8087/8187 |
Information Coordinator Service | 8083/8434 |
Non-RT RIC Control Panel | 8080/8880 |
SDNC A1-Controller | 8282/8443 |
Gateway | 9090 (only http) |
App Catalogue Service | 8680/8633 |
Helm Manager | 8112 (only http) |
Dmaap Mediator Producer | 9085/9185 |
Dmaap Adaptor Service | 9087/9187 |
Note: A version of this table appears Integration&Testing - E Release - E Release Docker Image List - NONRTRIC (E-Release). This is the authoritive version!
Prerequisites
The containers need to be connected to docker network in order to communicate with each other.
...
Code Block | ||
---|---|---|
| ||
docker network create nonrtric-docker-net |
Run
...
the A1 Policy Management Service Docker Container
To support local test with three separate Near-RT RIC A1 simulator instances, each running a one of the three available A1 Policy interface versions:
- Create an application_configuration.json file with the configuration below. This will configure the policy management service to use the simulators for the A1 interface
- Note: Any defined ric names must match the given docker container names in near-RT RIC simulator startup, see Run the Near-RT RIC A1 Simulator Docker Containers
- The application supports both REST and DMAAP interface. REST is always enabled but to enable DMAAP (message exchange via message-router) additional config is needed. The examples below uses REST over http.
...
Code Block | ||
---|---|---|
| ||
docker run --rm -v <absolute-path-to-file>/application_configuration.json:/opt/app/policy-agent/data/application_configuration.json -p 8081:8081 -p 8433:8433 --network=nonrtric-docker-net --name=policy-agent-container nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-a1-policy-management-service:2.3.01 |
Wait 1 minute to allow the container to start and to read the configuration. Then run the command below another terminal. The output should match the configuration in the file - all three rics (ric1, ric2 and ric3) should be included in the output. Note that each ric has the state "UNAVAILABLE" until the simulators are started.
Note: If the policy management service is started with config for the SDNC A1 Controller (the second config option), do the steps described in section Run the A1 Controller Docker Container below before proceeding.
Code Block | ||
---|---|---|
| ||
curl localhost:8081/a1-policy/v2/rics |
Expected output (not that all simulators - ric1,ric2 and ric3 will indicate "state":"UNAVAILABLE" until the simulators has been started in Release E - Run Run the Near-RT RIC A1 Simulator Docker Containers):
Code Block | ||
---|---|---|
| ||
{"rics":[{"ric_id":"ric1","managed_element_ids":["kista_1","kista_2"],"policytype_ids":[],"state":"UNAVAILABLE"},{"ric_id":"ric3","managed_element_ids":["kista_5","kista_6"],"policytype_ids":[],"state":"UNAVAILABLE"},{"ric_id":"ric2","managed_element_ids":["kista_3","kista_4"],"policytype_ids":[],"state":"UNAVAILABLE"}]} |
For troubleshooting/verification purposes you can view/access the full swagger API from url: http://localhost:8081/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config
Run the SDNC A1 Controller Docker Container (ONAP SDNC)
This step is only applicable if the configuration for the Policy Management Service include the SDNC A1 Controller (second config option), see Release E - Run Run the Policy Management Service Docker Container.
Create the docker compose file - be sure to update image for the a1controller to the one listed for SDNC A1 Controller in the table on the top of this page.
...
Code Block | ||
---|---|---|
| ||
docker exec a1controller sh -c "tail -f /opt/opendaylight/data/log/karaf.log" |
Run the Near-RT RIC A1 Simulator Docker Containers
Start a simulator for each ric defined in in the application_configuration.json created in Release E - Run Run the Policy Management Service Docker Container. Each simulator will use one of the currently available A1 interface versions.
...
Code Block | ||
---|---|---|
| ||
{"policytype_ids":["","123","std_pt1"]} |
Run the Information Coordinator Service Docker Container
Run the following command to start the information coordinator service.
Code Block | ||
---|---|---|
| ||
docker run --rm -p 8083:8083 -p 8434:8434 --network=nonrtric-docker-net --name=information-service-container nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-information-coordinator-service:1.2.01 |
Verify that the Information Coordinator Service is started and responding (response is an empty array).
...
For troubleshooting/verification purposes you can view/access the full swagger API from url: http://localhost:8083/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config
Run the Non-RT RIC Gateway and Control Panel Docker Container
The Gateway exposes the interfaces of the Policy Management Service and the Inform Coordinator Service to a single port of the gateway. This single port is then used by the control panel to access both services.
...
The webbased UI can be accessed by pointing the web-browser to this URL:
http://localhost:8080/
Run the App Catalogue Service Docker Container
Start the App Catalogue Service by the following command.
Code Block | ||
---|---|---|
| ||
docker run --rm -p 8680:8680 -p 8633:8633 --network=nonrtric-docker-net --name=rapp-catalogue-service nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-r-app-catalogue:1.0.12 |
Verify that the service is up and running
...
Code Block | ||
---|---|---|
| ||
[ ] |
Run the Helm Manager Docker Container
Note: Access to kubernetes is required as stated the requirements on the top of this page.
...
Code Block | ||
---|---|---|
| ||
docker run \ --rm \ -it \ -p 8112:8083 \ --name helmmanagerservice \ --network nonrtric-docker-net \ -v $(pwd)/mnt/database:/var/helm-manager-service \ -v ~/.kube:/root/.kube \ -v ~/.helm:/root/.helm \ -v ~/.config/helm:/root/.config/helm \ -v ~/.cache/helm:/root/.cache/helm \ -v $(pwd)/config/application.yaml:/etc/app/helm-manager/application.yaml \ nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-helm-manager:1.1.01 |
Make sure the app has started by listing the current charts - response should be empty json array.
...
To run in the helm manager in kubernetes see this page: Run Helm Manager in kubernetes
Run the Dmaap Adaptor Service Docker Container
The Dmaap Adaptor Service needs two configurations files, one for the application specific parameters and one for the types the application supports.
...
Code Block | ||
---|---|---|
| ||
docker run --rm \ -v <absolute-path-to-config-file>/application.yaml:/opt/app/dmaap-adaptor-service/config/application.yaml \ -v <absolute-path-to-config-file>/application_configuration.json:/opt/app/dmaap-adaptor-service/data/application_configuration.json \ -p 9086:8084 -p 9087:8435 --network=nonrtric-docker-net --name=dmaapadapterservice nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-dmaap-adaptor:1.0.01 |
Setup jobs to produce data according to the types in application_configuration.json
...
Data posted on the kafka topic unauthenticated.dmaapadp_kafka.text will be delivered to the path as specified in the job2.json.
Run the Dmaap Mediator Producer Docker Container
The Dmaap Mediator Producer needs one configuration file for the types the application supports.
...
Code Block | ||
---|---|---|
| ||
docker run --rm -v \ <absolute-path-to-config-file>/type_config.json:/configs/type_config.json \ -p 8085:8085 -p 8185:8185 --network=nonrtric-docker-net --name=dmaapmediatorservice \ -e "INFO_COORD_ADDR=https://informationservice:8434" \ -e "DMAAP_MR_ADDR=https://message-router:3905" \ -e "LOG_LEVEL=Debug" \ -e "INFO_PRODUCER_HOST=https://dmaapmediatorservice" \ -e "INFO_PRODUCER_PORT=8185" \ nexus3.o-ran-sc.org:10002/o-ran-sc/nonrtric-dmaap-mediator-producer:1.0.01 |
Setup jobs to produce data according to the types in type_config.json
...
Data posted on the message router topic unauthenticated.dmaapmed.json will be delivered to the path as specified in the job3.json
Run usecases
Within NON-RT RIC a number of usecase implementations are provided. Follow the links below to see how to run them.
...