Corrected rApp Catalogue image tag for d release test
[nonrtric.git] / docs / developer-guide.rst
index b5fedc3..43ac2d1 100644 (file)
 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 <https://wiki.o-ran-sc.org/display/RICNR/Release+D>`_
 
-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 <https://docs.onap.org/projects/onap-ccsdk-oran/en/latest/index.html>`_
+and `wiki <https://wiki.onap.org/pages/viewpage.action?pageId=84672221>`_.
 
-Build and run
--------------
-Go to the northbound directory and run this command ::
-    mvn clean install
+Enrichment Coordinator Service
+------------------------------
+The Enrichment 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 *enrichment-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 Enrichment Coordinator Service as a freestanding application, run the following
+command in the *enrichment-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
+Start in Docker
++++++++++++++++
 
-The SDNC url to access the Northbound API,
-    http://localhost:8282/apidoc/explorer/index.html
+To build and deploy the Enrichment Coordinator Service, go to the "enrichment-coordinator-service" folder and run the
+following command:
 
-Credentials: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+    +-----------------------------+
+    | mvn clean install           |
+    +-----------------------------+
 
-Configuration of certs
-----------------------
-The SDNC-A1 controller uses the default keystore and truststore that are built into the container.
+Then start the container by running 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
+    +--------------------------------------------------------------------+
+    | docker run nonrtric-enrichment-coordinator-service                 |
+    +--------------------------------------------------------------------+
 
-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
+Initial Non-RT-RIC App Catalogue
+--------------------------------
 
-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:
+See the README.md file in the *r-app-catalogue* directory in the Gerrit repo for more details how to run the component.
 
-::
+Kubernetes deployment
+=====================
 
-#volumes:
-#   - <path_to_keystore>:/etc/ssl/certs/java/keystore.jks:ro
-#   - <path_to_truststore>:/etc/ssl/certs/java/truststore.jks:ro
-#   - <path_to_https-props>:/opt/onap/sdnc/data/properties/https-props.properties:ro
-
-The target paths in the container should not be modified.
-
-For example, assuming that the keystore, truststore, and https-props.properties files are located in the same directory as docker-compose:
-
-`volumes:`
-    `- ./new_keystore.jks:/etc/ssl/certs/java/keystore.jks:ro`
-
-    `- ./new_truststore.jks:/etc/ssl/certs/java/truststore.jks:ro`
-
-    `- ./new_https-props.properties:/opt/onap/sdnc/data/properties/https-props.properties:ro`
-
-Policy Agent
-============
-
-The O-RAN Non-RT RIC Policy Agent provides a REST API for management of policices. It provides support for:
-
- * 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:
-
-   * 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.
-
-| 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.
-
-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
-
-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
+Non-RT RIC can be also deployed in a Kubernetes cluster, `it/dep repository <https://gerrit.o-ran-sc.org/r/admin/repos/it/dep>`_
+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.
+For more information see `Integration and Testing documentation on the O-RAN-SC wiki <https://docs.o-ran-sc.org/projects/o-ran-sc-it-dep/en/latest/index.html>`_.