X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Foverview.rst;h=0aebe30e31d960051a929cb3c7aa43cb7f8545b5;hb=1c7c5fc52d531205e3bd639fc4f2189c49f296cc;hp=26e755f3a7a82dc16f62d9e8c93aac2ac99b58fa;hpb=3efd775e0cea53bcb8c9afb96b375f98dffbafc8;p=nonrtric.git diff --git a/docs/overview.rst b/docs/overview.rst index 26e755f3..0aebe30e 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -2,7 +2,7 @@ .. SPDX-License-Identifier: CC-BY-4.0 .. Copyright (C) 2021 Nordix -.. |archpic| image:: ./images/nonrtric-architecture-E.png +.. |archpic| image:: ./images/nonrtric-architecture-F.png :alt: Image: O-RAN SC - NONRTRIC Overall Architecture Summary @@ -28,23 +28,24 @@ NONRTRIC components These are the components that make up the Non-RT-RIC: -- Non-RT-RIC Control Panel -- Information Coordinator Service -- A1 Policy Management Service -- A1 Policy Controller / Adapter -- Near-RT RIC A1 Simulator -- Non-RT-RIC (Spring Cloud) Service Gateway -- Non-RT-RIC (Kong) Service Exposure Prototyping -- DMaaP/Kafka Information Producer Adapters -- Initial Non-RT-RIC App Catalogue -- Initial K8S Helm Chart LCM Manager -- Test Framework -- Use Cases +* `Non-RT-RIC Control Panel <#non-rt-ric-control-panel-nonrtric-dashboard>`_. :doc:`Documentation site `. +* `Information Coordinator Service <#information-coordination-service>`_. :doc:`Documentation site `. +* `A1 Policy Management Service <#a1-policy-management-service-from-onap-ccsdk>`_. :doc:`Documentation site `. +* `A1 Policy Controller / Adapter <#a1-sdnc-controller-a1-adapter-controller-plugin>`_. +* `Near-RT RIC A1 Simulator <#a1-interface-near-rt-ric-simulator>`_. :doc:`Documentation site `. +* `Non-RT-RIC (Spring Cloud) Service Gateway <#non-rt-ric-spring-cloud-service-gateway>`_. +* `Non-RT-RIC (Kong) Service Exposure Prototyping <#non-rt-ric-kong-service-exposure-prototyping>`_. +* `DMaaP/Kafka Information Producer Adapters <#dmaap-kafka-information-producer-adapters>`_. :doc:`Documentation site adapter `. :doc:`Documentation site mediator `. +* `Initial Non-RT-RIC App Catalogue <#initial-non-rt-ric-app-catalogue>`_. :doc:`Documentation site `. +* `Initial K8S Helm Chart LCM Manager <#id5>`_. :doc:`Documentation site `. +* `Authentication Support <#id6>`_. :doc:`Documentation site `. +* `Service Management & Exposure (SME) <#service-management-and-exposure>`_. :doc:`Documentation site `. +* `Test Framework <#id7>`_. +* `Use Cases: <#non-rt-ric-use-cases>`_ + + * "Helloworld" O-RU Fronthaul Recovery use case. :doc:`Documentation site `. + * "Helloworld" O-DU Slice Assurance use case. :doc:`Documentation site `. - + "Helloworld" O-RU Fronthaul Recovery use case - + "Helloworld" O-DU Slice Assurance use case - -The source code for "E" Release is in the `NONRTRIC `_, `NONRTRIC-ControlPanel `_, and `Near-RT-RIC A1-Simulator `_ Gerrit source repositories (E-Release Branch). Non-RT-RIC Control Panel / NONRTRIC Dashboard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -62,7 +63,7 @@ Implementation: - Frontend: Angular framework - Repo: *portal/nonrtric-controlpanel* - `Wiki `_ to set up in your local environment. -- Documentation at the `NONRTRIC-Portal documentation site `_. +- Documentation at the :doc:`NONRTRIC-Portal documentation site `. Information Coordination Service ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -77,13 +78,13 @@ Maintains a registry of: - Information Consumers - Information Jobs -The service is not involved in data delivery and hence does not put restrictions on this. +The service is not involved in data delivery and hence does not put restrictions on this. Implementation: - Implemented as a Java Spring Boot application. - Repo: *nonrtric/plt/informationcoordinatorservice*. -- Documentation at the `Information Coordination Service site `_ +- Documentation at the :doc:`Information Coordination Service site `. A1 Policy Management Service (from ONAP CCSDK) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -110,6 +111,8 @@ Implementation: - Implemented as a Java Spring Boot application. - Wiki: `A1 Policy Management Service in ONAP `_ . +- Repo: *nonrtric/plt/a1policymanagementservice*. +- Documentation at the :doc:`A1 Policy Management Service documentation site `. A1/SDNC Controller & A1 Adapter (Controller plugin) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -141,7 +144,7 @@ Implementation: - Implemented as a Python application. - Repo: *sim/a1-interface*. -- Documentation at the `A1 Simulator documentation site `_ +- Documentation at the :doc:`A1 Simulator documentation site `. Non-RT-RIC (Spring Cloud) Service Gateway ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -183,8 +186,8 @@ There are two alternative implementations to allow Information Consumers to cons Implementation: -- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see `DMaaP Adapter documentation site `_. -- Implemention in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, see `DMaaP Mediator Producer documentation site `_. +- Implementation in Java Spring (DMaaP Adapter), repo: *nonrtric/plt/dmaapadapter*, see :doc:`DMaaP Adapter documentation site `. +- Implementation in Go (DMaaP Mediator Producer), repo: *nonrtric/plt/dmaapmediatorproducer*, see :doc:`DMaaP Mediator Producer documentation site `. Initial Non-RT-RIC App Catalogue ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -199,7 +202,7 @@ Implementation: - Implemented as a Java Spring Boot application. - Repo: *nonrtric/plt/rappcatalogue* -- Documentation at the `rApp Catalogue documentation site `_. +- Documentation at the :doc:`rApp Catalogue documentation site `. Initial K8S Helm Chart LCM Manager ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -217,25 +220,80 @@ Implementation: - Implemented as a Java Spring Boot application. - Repo: *nonrtric/plt/helmmanager* -- Documentation at the `Helm Manager documentation site `_. +- Documentation at the :doc:`Helm Manager documentation site `. + +Service Management and Exposure +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +An initial implementation of the CAPIF Core service. It implements the following CAPIF APIs: + +- API Provider Management +- Publish Service +- Discover Service +- API Invoker Management +- Security +- Events + +Implementation: + +- Implemented in Go +- Repo: *nonrtric/plt/sme* +- Documentation at the :doc:`Service Management & Exposure (SME) documentation site `. + +Authentication Support +~~~~~~~~~~~~~~~~~~~~~~ + +The auth-token-fetch provides support for authentication. +It is intended to be used as a sidecar and does the authentication procedure, gets and saves the access token +in the local file system. This includes refresh of the token before it expires. +This means that the service only needs to read the token from a file. + +It is tested using Keycloak as authentication provider. + +.. image:: ./AuthSupport.png + :width: 500pt + +So, a service just needs to read the token file and for instance insert it in the authorization header when using HTTP. +The file needs to be re-read if it has been updated. + +The auth-token-fetch is configured by the following environment variables. + +* CERT_PATH - the file path of the cert to use for TSL, example: security/tls.crt +* CERT_KEY_PATH - the file path of the private key file for the cert, example: "security/tls.key" +* ROOT_CA_CERTS_PATH - the file path of the trust store. +* CREDS_GRANT_TYPE - the grant_type used for authentication, example: client_credentials +* CREDS_CLIENT_SECRET - the secret/private shared key used for authentication +* CREDS_CLIENT_ID - the client id used for authentication +* OUTPUT_FILE - the path where the fetched authorization token is stored, example: "/tmp/authToken.txt" +* AUTH_SERVICE_URL - the URL to the authentication service (Keycloak) +* REFRESH_MARGIN_SECONDS - how long in advance before the authorization token expires it is refreshed Test Framework ~~~~~~~~~~~~~~ A full test environment with extensive test cases/scripts can be found in the ``test`` directory in the *nonrtric* source code. -Use Cases -~~~~~~~~~ +Non-RT-RIC Use Cases +~~~~~~~~~~~~~~~~~~~~ "Helloworld" O-RU Fronthaul Recovery use case ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A very simplified closed-loop rApp use case to re-establish front-haul connections between O-DUs and O-RUs if they fail. Not intended to to be 'real-world'. +Implementation: + +- One version implemented in Python, one in Go as an Information Coordination Service Consumer, and one as an apex policy. +- Repo: *nonrtric/rapp/orufhrecovery* +- Documentation at the :doc:`O-RU Fronthaul Recovery documentation site `. + "Helloworld" O-DU Slice Assurance use case ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A very simplified closed-loop rApp use case to re-prioritize a RAN slice's radio resource allocation priority if sufficient throughput cannot be maintained. Not intended to to be 'real-world'. -* Repo: *nonrtric/rapp/ransliceassurance* -More details available at the `documentation site `__. +Implementation: + +- One version implemented in Go as a micro service, one in Go as an Information Coordination Service Consumer. +- Repo: *nonrtric/rapp/ransliceassurance* +- Documentation at the :doc:`O-DU Slice Assurance documentation site `.