Participant docs minor alignments and corrections
[nonrtric/plt/rappmanager.git] / docs / overview.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. Copyright (C) 2023 OpenInfra Foundation Europe. All rights reserved.
4
5 rApp Manager
6 ~~~~~~~~~~~~
7
8 The rApp Manager is a lifecycle management service for rApps. It gets the rApp as an ASD formatted package and lifecycle manages it based on it instance configuration. It uses ONAP ACM for lifecycle management operations and it integrates with other components for managing the rApp.
9
10 The ASD package contains the details required to create and integrate the required services/components.
11 The ASD package contains only one rApp and one rApp can have any number of rApp instances.
12
13 This product is a part of :doc:`NONRTRIC <nonrtric:index>`.
14
15 ************
16 Architecture
17 ************
18
19 .. image:: ./images/architecture.png
20    :width: 500pt
21
22
23 **********
24 Data Model
25 **********
26
27 .. image:: ./images/rApp-entity-relationship.png
28    :width: 500pt
29
30 ************
31 Integrations
32 ************
33
34 The rApp Manager is integrated with the following components to support lifecycle managing the rApp.
35
36 ACM
37 ---
38 Automation Composition Management (ACM) is a framework that supports Life Cycle Management of Automation Compositions. It supports deployment, monitoring, update and removal of Automation Compositions en-bloc, allowing users to manage their features, services, and capabilities as single logical units.
39 More details about ACM can be found in `ACM <https://docs.onap.org/projects/onap-policy-parent/en/latest/clamp/acm/acm-architecture.html#introduction>`_.
40
41 ACM-R has the ability to support an unlimited number of participants and all the participants can be configured through the configuration in the rApp package.
42
43 List of participants used by rApp manager sample rApp.
44
45 * `A1PMS Participant <https://docs.onap.org/projects/onap-policy-parent/en/latest/clamp/acm/design-impl/participants/a1pms-participant.html>`_ - It interacts with A1PMS of NONRTRIC. It is capable of lifecycle managing A1PMS service.
46 * `Kserve Participant <https://docs.onap.org/projects/onap-policy-parent/en/latest/clamp/acm/design-impl/participants/kserve-participant.html>`_ - It interacts with Kserve. It is capable of lifecycle managing Kserve inference service.
47 * `Kubernetes Participant <https://docs.onap.org/projects/onap-policy-parent/en/latest/clamp/acm/design-impl/participants/k8s-participant.html>`_ - It interacts with Helm/Kubernetes. It is capable of lifecycle managing Helm charts. It expects the helm charts to be available in the mentioned repository as it doesn't handle the helm chart creation in the chart repository.
48 * :doc:`DME Participant <participants:index>` -  It interacts with DME(ICS) of NONRTRIC. It is capable of lifecycle managing DME entities.
49
50 ACM composition and instance details can be provided as part of the rApp package and the package structure can be found in `Sample rApp package structure`_.
51
52 DME
53 ---
54 The DME(Information Coordination Service (ICS)) is a generic service that maintains data subscriptions. Its main purpose is to decouple data consumers and data producers in a multi-vendor environment. A data consumer does not need to know anything about the producers of the data.
55 More details about DME can be found in `ICS <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-informationcoordinatorservice/en/latest/overview.html>`_.
56
57 It is integrated with rApp manager to enable the rApp to produce/consume specific type of data(Information Type in DME terms).
58
59 Information type, and Data producer/consumer information can be provided as part of rApp package and the package structure can be found in `Sample rApp package structure`_.
60
61 SME
62 ---
63 The CAPIF stands for Common API framework and it was developed by 3GPP to enable a unified Northbound API framework across 3GPP network functions, and to ensure that there is a single and harmonized approach for API development.
64 More details about SME can be found in `SME <https://docs.o-ran-sc.org/projects/o-ran-sc-nonrtric-plt-sme/en/latest/overview.html>`_.
65
66 It is integrated with rApp manager to enable the rApp to expose/access/discover endpoints.
67
68 Service exposure/access related configurations can be provided as part of rApp package and the package structure can be found in `Sample rApp package structure`_.
69
70 *****************************
71 Sample rApp package structure
72 *****************************
73 The sample rApp package structure shown below and the location of relevant files for each integration is provided.
74
75 .. list-table::
76
77     * - * ACM (Files/Acm)
78             * Definition - Files/Acm/Definition (Only one file)
79             * Instances - Files/Acm/instances
80         * DME (Files/Dme)
81             * Consumer Information Types - Files/Dme/consumerinfotypes
82             * Producer information Types -  Files/Dme/producerinfotypes
83             * Information Consumers - Files/Dme/infoconsumers
84             * Information Producers - Files/Dme/infoproducers
85         * SME (Files/Sme)
86             * Providers Functions - Files/Sme/providers
87             * Service Api -  Files/Sme/serviceapis
88             * Invokers - Files/Sme/invokers
89       - .. figure:: ./images/rApp-package-1.png
90            :width: 200pt
91         .. figure:: ./images/rApp-package-2.png
92            :width: 150pt
93
94 **************
95 Implementation
96 **************
97
98 Implemented as a Java Spring Boot application.
99
100 *************
101 Configuration
102 *************
103
104 The component is configured by the usual Spring Boot application.yaml file.
105
106 An example application.yaml configuration file: ':download:`link <../rapp-manager-application/src/main/resources/application.yaml>`'
107