...
Details of the architecture can be found from Release IJ page.
Table of Contents | ||
---|---|---|
|
Project Requirements
docker
anddocker-compose
(latest)curl
(or similar)- Additional optional requirements if using the "Helm Manager" function
kubernetes
v1.19+kubectl
with admin access to kubernetes (e.g., minikube, docker-desktop kubernetes etc)helm
with access to kubernetes - this is only applicable when running the Helm Manager example operations
- Addition optional requirement if using the "DMaaP Adapter" or "DMaap Mediator Producer" services
- DMaaP MR (See: Deploy DMaaP message router in nonrtric)
kafka
(latest) - only for DMaaP Adapter Service, and optional
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.
In general, there is no need to build the images manually unless there are code changes made by the user, so release images should be used. Instruction on how to build all components, see. Release I J - Build.
The run commands throughout this page uses the release images and tags. Replace the release images/tags in the container run commands in the instructions if manually-built snapshot images are desired.
...
J Release - Images & Tags
- Release IRelease I J - Docker Images
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 |
A1 Simulator (Near-RT RIC 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 Adapter Service | 9087/9187 |
SME-CapifCore | 8090 (only http) |
Prerequisites
The containers need to be connected to docker network in order to communicate with each other.
...
|
Run the A1 Policy Management Service Docker Container
Anchor | ||||
---|---|---|---|---|
|
Test locally with three separate 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 A1 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 A1 Simulator Docker Containers
The A1 Policy Management Service can be configured to support A1 connection via an SDNC A1-Controller for some or all rics/simulators. It is optional to access the near-RT-RIC through an SDNC A1-Controller.
This is enabled in the configuration file using the optional "controller
" parameter for each ric
entry. If all configured ric
s bypass the A1-Controller (do not have "controller
" values) then the "controller
" object at the top of the configuration can be omitted. If all configured ric
s bypass the SDNC A1-Controller there is no need to start an SDNC A1-Controller.
...
|
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 SDNC A1 Controller Docker Container below before proceeding.
NOTE: Use below Endpoint to use a1policymanagement V2
|
Expected output (not that all simulators - ric1,ric2 and ric3 will indicate "state":"UNAVAILABLE" until the simulators has been started in Run A1 Simulator Docker Containers):
|
...
This step is only applicable if the configuration for the Policy Management Service include the SDNC A1 Controller (second config option), see Run the A1 Policy Management Service Docker NOTE: Use below Endpoint to use a1policymanagement V3
|
Expected output (not that all simulators - ric1,ric2 and ric3 will indicate "state":"UNAVAILABLE" until the simulators has been started in Run A1 Simulator Docker Containers):
|
Run the SDNC A1 Controller Docker Container (ONAP SDNC)
Anchor | ||||
---|---|---|---|---|
|
This step is only applicable if the configuration for the Policy Management Service include the SDNC A1 Controller (second config option), see Run the A1 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.
docker-compose.yaml
Code Block | ||
---|---|---|
| ||
version: '3' networks: default: external: true name: nonrtric-docker-net services: db: image: nexus3.o-ran-sc.org:10001/mariadb:10.5 container_name: sdncdb networks: - default ports: - "3306" environment: - MYSQL_ROOT_PASSWORD=itsASecret - MYSQL_ROOT_HOST=% - MYSQL_USER=sdnctl - MYSQL_PASSWORD=gamma - MYSQL_DATABASE=sdnctl logging: driver: "json-file" options: max-size: "30m" max-file: "5" a1controller: image: nexus3.onap.org:10001/onap/sdnc-image:2.56.41 depends_on : - db container_name: a1controller networks: - default entrypoint: ["/opt/onap/sdnc/bin/startODL.sh"] ports: - 8282:8181 - 8443:8443 links: - db:dbhost - db:sdnctldb01 - db:sdnctldb02 environment: - MYSQL_ROOT_PASSWORD=itsASecret - MYSQL_USER=sdnctl - MYSQL_PASSWORD=gamma - MYSQL_DATABASE=sdnctl - SDNC_CONFIG_DIR=/opt/onap/sdnc/data/properties - SDNC_BIN=/opt/onap/sdnc/bin - ODL_CERT_DIR=/tmp - ODL_ADMIN_USERNAME=admin - ODL_ADMIN_PASSWORD=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U - ODL_USER=admin - ODL_PASSWORD=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U - SDNC_DB_INIT=true - A1_TRUSTSTORE_PASSWORD=a1adapter - AAI_TRUSTSTORE_PASSWORD=changeit logging: driver: "json-file" options: max-size: "30m" max-file: "5" |
...
|
Run the A1 Simulator (Near-RT-RIC simulator) Docker Containers
Anchor | ||||
---|---|---|---|---|
|
Start a simulator for each ric
defined in in the application_configuration.json
created above in section Run the A1 Policy Management Service Docker Container. Each simulator will use one of the currently available A1 interface versions. Each simulator uses different local ports.
ric1
|
...
|
ric2
|
ric2
ric3
|
ric3
...
docker run --rm --network=nonrtric-docker-net -p
8087:8085 -p 8187:8185 -e A1_VERSION=STD_2.0.0 -e ALLOW_HTTP=
true
--name=ric3 nexus3.o-ran-sc.org:10002
/o-ran-sc/a1-simulator
:2.5.0
...
|
Wait at least one minute to let the policy management service synchronise the ric
s. Then run the command below another terminal. The output should match the configuration in the file. Note that each ric
now has the state "AVAILABLE
".
NOTE: Use below Endpoint to use a1policymanagement V2
|
Expected output - all state should indicated AVAILABLE
:
|
NOTE: Use below Endpoint to use a1policymanagement V3
|
Expected output - all state should indicated AVAILABLE
:
|
...
List the synchronised types using a1policymanagement V2 endpoint:
|
...
|
List the synchronised types using a1policymanagement V3 endpoint:
|
Expected output:
|
Run the Information Coordinator Service Docker Container
Anchor | ||||
---|---|---|---|---|
|
Run the following command to start the information coordinator service.
|
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 NONRTRIC Gateway and NONRTRIC Control Panel Docker Container
The NONRTRIC Gateway exposes the interfaces of the A1 Policy Management Service and the Information Coordinator Service to a single port of the gateway. This single port is then used by the NONRTRIC Control Panel to access both services.
...
The web-based 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.
...
|
Expected output:
|
Run the App Catalogue (Enhanced) Service Docker Container
Start the App Catalogue Enhanced Service by the following command.
|
Verify that the service is up and running
|
Expected output:
|
Run the Helm Manager Docker Container
Note: Access to kubernetes
is required as stated the requirements on the top of this page.
...
|
Run the DMaaP Adapter Service Docker Container
The DMaaP Adapter Service needs two configurations files, one for the application specific parameters and one for the types the application supports.
...
|
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.
...
Data posted on the DMaaP MR topic unauthenticated.dmaapmed.json
will be delivered to the path as specified in the job3.json
.
Run SME CAPIF Core
Start the CAPIF Core (Release HJ) in a separate shell with the following command:
|
This is a basic start command without helm. See CAPIF (Release H) and the README file in the sme repository for more options.
...
|
Run RANPM
There is no Docker compose file for now. Might have one later.