X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Fdeveloper-guide.rst;h=76d673e39207bb26ce281cb4e54af6444035fc43;hb=69f664024c3c053ff879768e0f3738c9205fff90;hp=b5fedc38daf9bb4c4418cc270b938fa0810e8602;hpb=cf0328e36341adab7db60355fb37b8629b1cd8bd;p=nonrtric.git diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index b5fedc38..76d673e3 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -1,130 +1,96 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2020 Nordix +.. Copyright (C) 2021 Nordix Developer Guide =============== -This document provides a quickstart for developers of the Non-RT RIC. +This document provides a quickstart for developers of the Non-RT RIC parts. -SDNC A1 Controller -================== +Additional developer guides are available on the `O-RAN SC NONRTRIC Developer wiki `_. -Prerequisites -------------- +A1 Policy Management Service & SDNC/A1 Controller & A1 Adapter +-------------------------------------------------------------- -1. Java development kit (JDK), version 8 -2. Maven dependency-management tool, version 3.6 or later -3. Python, version 2 -4. Docker, version 19.03.1 or latest -5. Docker Compose, version 1.24.1 or latest +The A1 Policy Management Service is implemented in ONAP. For documentation see `ONAP CCSDK documentation `_. +and `wiki `_. -Build and run -------------- -Go to the northbound directory and run this command :: - mvn clean install +Information Coordinator Service +------------------------------- +The Information Coordinator Service is a Java 11 web application built using the Spring Framework. Using Spring Boot +dependencies, it runs as a standalone application. -This will build the project and create artifcats in maven repo +Its main functionality is to act as a data subscription broker and to decouple data producer from data consumers. -Go to oam/installation directory and run this command :: - mvn clean install -P docker +See the ./config/README file in the *information-coordinator-service* directory Gerrit repo on how to create and setup +the certificates and private keys needed for HTTPS. -This will create the docker images required for A1 controller. +Start standalone +++++++++++++++++ -After this step check for the docker images created by the maven build with this command :: - docker images | grep a1-controller +The project uses Maven. To start the Information Coordinator Service as a freestanding application, run the following +command in the *information-coordinator-service* directory: -Go to oam/installation/src/main/yaml and run this command :: - docker-compose up -d a1-controller + +-----------------------------+ + | mvn spring-boot:run | + +-----------------------------+ -This will create the docker containers with the A1 controller image, you can check the status of the docker container using :: - docker-compose logs -f a1-controller +There are a few files that needs to be available to run. These are referred to from the application.yaml file. +The following properties have to be modified: -The SDNC url to access the Northbound API, - http://localhost:8282/apidoc/explorer/index.html +* server.ssl.key-store=./config/keystore.jks +* app.webclient.trust-store=./config/truststore.jks +* app.vardata-directory=./target -Credentials: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U +Start in Docker ++++++++++++++++ -Configuration of certs ----------------------- -The SDNC-A1 controller uses the default keystore and truststore that are built into the container. +To build and deploy the Information Coordinator Service, go to the "information-coordinator-service" folder and run the +following command: -The paths and passwords for these stores are located in a properties file: - nonrtric/sdnc-a1-controller/oam/installation/src/main/properties/https-props.properties + +-----------------------------+ + | mvn clean install | + +-----------------------------+ -The default truststore includes the a1simulator cert as a trusted cert which is located here: - https://gerrit.o-ran-sc.org/r/gitweb?p=sim/a1-interface.git;a=tree;f=near-rt-ric-simulator/certificate;h=172c1e5aacd52d760e4416288dc5648a5817ce65;hb=HEAD +Then start the container by running the following command: -The default keystore, truststore, and https-props.properties files can be overridden by mounting new files using the "volumes" field of docker-compose. Uncommment the following lines in docker-compose to do this, and provide paths to the new files: + +--------------------------------------------------------------------+ + | docker run nonrtric-information-coordinator-service | + +--------------------------------------------------------------------+ -:: +DMaaP Adaptor Service +--------------------- -#volumes: -# - :/etc/ssl/certs/java/keystore.jks:ro -# - :/etc/ssl/certs/java/truststore.jks:ro -# - :/opt/onap/sdnc/data/properties/https-props.properties:ro +This Java implementation is run in the same way as the Information Coordinator Service. -The target paths in the container should not be modified. +The following properties in the application.yaml file have to be modified: +* server.ssl.key-store=./config/keystore.jks +* app.webclient.trust-store=./config/truststore.jks +* app.configuration-filepath=./src/test/resources/test_application_configuration.json -For example, assuming that the keystore, truststore, and https-props.properties files are located in the same directory as docker-compose: +DMaaP Mediator Producer +----------------------- -`volumes:` - `- ./new_keystore.jks:/etc/ssl/certs/java/keystore.jks:ro` +To build and run this Go implementation, see the README.md file under the folder "dmaap-mediator-producer" in the "nonrtric" repo. - `- ./new_truststore.jks:/etc/ssl/certs/java/truststore.jks:ro` +O-DU & O-RU fronthaul recovery +------------------------------ - `- ./new_https-props.properties:/opt/onap/sdnc/data/properties/https-props.properties:ro` +See the page in Wiki: `O-RU Fronthaul Recovery usecase `_. -Policy Agent -============ +Helm Manager +------------ -The O-RAN Non-RT RIC Policy Agent provides a REST API for management of policices. It provides support for: +See the page in Wiki: `Release E `_. - * Supervision of clients (R-APPs) to eliminate stray policies in case of failure - * Consistency monitoring of the SMO view of policies and the actual situation in the RICs - * Consistency monitoring of RIC capabilities (policy types) - * Policy configuration. This includes: +Kubernetes deployment +===================== - * One REST API towards all RICs in the network - * Query functions that can find all policies in a RIC, all policies owned by a service (R-APP), all policies of a type etc. - * Maps O1 resources (ManagedElement) as defined in O1 to the controlling RIC. +Non-RT RIC can be also deployed in a Kubernetes cluster, `it/dep repository `_. +hosts deployment and integration artifacts. Instructions and helm charts to deploy the Non-RT-RIC functions in the +OSC NONRTRIC integrated test environment can be found in the *./nonrtric* directory. -| The Policy Agent can be accessed over the REST API or through the DMaaP Interface. The REST API is documented in the -| *nonrtric/policy-agent/docs/api.yaml* file. Please refer to the README file of Policy Agent to know more about the API's. +For more information on installation of NonRT-RIC in Kubernetes, see `Deploy NONRTRIC in Kubernetes `_. -Configuration of certs ----------------------- -The Policy Agent uses the default keystore and truststore that are built into the container. The paths and passwords for these stores are located in a yaml file: - nonrtric/policy-agent/config/application.yaml +For more information see `Integration and Testing documentation on the O-RAN-SC wiki `_. -The default truststore includes a1simulator cert as a trusted cert which is located here: - https://gerrit.o-ran-sc.org/r/gitweb?p=sim/a1-interface.git;a=tree;f=near-rt-ric-simulator/certificate;h=172c1e5aacd52d760e4416288dc5648a5817ce65;hb=HEAD - -The default truststore also includes a1controller cert as a trusted cert which is located here (keystore.jks file): - https://gerrit.o-ran-sc.org/r/gitweb?p=nonrtric.git;a=tree;f=sdnc-a1-controller/oam/installation/sdnc-a1/src/main/resources;h=17fdf6cecc7a866c5ce10a35672b742a9f0c4acf;hb=HEAD - -There is also Policy Agent's own cert in the default truststore for mocking purposes and unit-testing (ApplicationTest.java). - -The default keystore, truststore, and application.yaml files can be overridden by mounting new files using the "volumes" field of docker-compose or docker run command. - -Assuming that the keystore, truststore, and application.yaml files are located in the same directory as docker-compose, the volumes field should have these entries: - -`volumes:` - `- ./new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks:ro` - - `- ./new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks:ro` - - `- ./new_application.yaml:/opt/app/policy-agent/config/application.yaml:ro` - -The target paths in the container should not be modified. - -Example docker run command for mounting new files (assuming they are located in the current directory): - -`docker run -p 8081:8081 -p 8433:8433 --name=policy-agent-container --network=nonrtric-docker-net --volume "$PWD/new_keystore.jks:/opt/app/policy-agent/etc/cert/keystore.jks" --volume "$PWD/new_truststore.jks:/opt/app/policy-agent/etc/cert/truststore.jks" --volume "$PWD/new_application.yaml:/opt/app/policy-agent/config/application.yaml" o-ran-sc/nonrtric-policy-agent:2.1.0-SNAPSHOT` - -End-to-end call -=============== - -In order to make a complete end-to-end call, follow the instructions given in this `guide`_. - -.. _guide: https://wiki.o-ran-sc.org/pages/viewpage.action?pageId=12157166