Copied from Release A, not updated to B level yet!
This page describes how to get the release B version of NonRTRIC up and running locally. All four components of the NonRTRIC (from three different repos) run inside docker containers and communicate via a docker network. Details of the architecture can be found from Release B page.
Project Requirements
- Java 11 (make sure that JAVA_HOME environment variable points to correct Java version)
- Maven 3.6
- Docker (latest)
Build Code
Build nonrtric containers
- Download the nonrtric repo (defaults to master branch):
git clone "https://gerrit.o-ran-sc.org/r/nonrtric"
- To support local test with two separate NearRT-RIC simulator instances the following modifications must be done:
- change the 'a1ControllerBaseUrl' in nonrtric/policy-agent/config/application.yaml file of policy-agent to http://a1-controller-container:8181
- The above hostname and port values come from and must match those defined in nonrtric/sdnc-a1-controller/oam/installation/src/main/yaml/docker-compose.yml
- The default URL to be replaced (http://sdnc.onap:8282) is used in Kubernetes-based ONAP deployment
- The following step is required only if you want to run more than the default ric1 nearRT-RIC simulator instance
- replace the content of nonrtric/policy-agent/config/application_configuration.yaml with the configuration below
- any defined ric names must match the given docker container names in nearRT-RIC simulator startup - port is always the simulator's internal 8085
- change the 'a1ControllerBaseUrl' in nonrtric/policy-agent/config/application.yaml file of policy-agent to http://a1-controller-container:8181
application_configuration.yaml{ "config": { "//description": "Application configuration", "ric": [ { "name": "ric1", "baseUrl": "http://ric1:8085/", "managedElementIds": [ "kista_1", "kista_2" ] }, { "name": "ric2", "baseUrl": "http://ric2:8085/", "managedElementIds": [ "kista_3", "kista_4" ] } ] } }
- To support local test with two separate NearRT-RIC simulator instances the following modifications must be done:
- Build the code and create docker images.
cd ../..
mvn clean install
Build near-rt-ric-simulator container
- Download the near repo (defaults to master branch):
git clone "https://gerrit.o-ran-sc.org/r/sim/a1-interface"
- Create docker image
cd a1-interface/near-rt-ric-simulator
docker build -t near-rt-ric-simulator:latest .
Build dashboard container
- Download the nonrtric repo (defaults to master branch):
git clone "https://gerrit.o-ran-sc.org/r/portal/nonrtric-controlpanel"
- Note also that nonrtric-controlpanel/webapp-backend/src/main/resources/application.properties default property value policycontroller.url.prefix = http://policy-agent-container:8081 assumes that policy agent is started with name policy-agent-container and exposes port 8081 (as is done below)!
- Build the code and create docker image
cd nonrtric-controlpanel
mvn clean install
Run A1 Controller Docker Container
- Change directory to:
cd nonrtric/sdnc-a1-controller/oam/installation/src/main/yaml
- Run docker container using the command below
docker-compose up a1-controller
- the container is ready once message "Healthcheck Passed in XX seconds." appears
- note that certificate-related errors "cp: can't stat '/opt/opendaylight/current/certs/*': No such file or directory" and "Error: File not found in path entered" can be ignored
- The Karaf logs of A1 controller can be seen using the following commands:
docker exec -it a1-controller-container sh
cd opt/opendaylight/data/log/
tail -f karaf.log
Run Near-RT-RIC Simulator Docker Containers
- TBD, the procedure is changed from release A
Run Policy-agent Docker Container
- Run docker container using this command:
docker run -p 8081:8081 --network=nonrtric-docker-net --name=policy-agent-container o-ran-sc/nonrtric-policy-agent:1.0.0-SNAPSHOT
Run Non-RT-RIC Dashboard Docker Container
- Run docker container using this command:
docker run -p 8080:8080 --network=nonrtric-docker-net o-ran-sc/nonrtric-controlpanel:1.0.0-SNAPSHOT
Open Dashboard UI
- Dashboard UI can be accessed by pointing the web-browser to this URL:
http://localhost:8080/