Table of Contents |
---|
Introduction
The rApp Manager is a lifecycle management service for rApps. It gets the rApp as 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.
ASD package contains the details required to create and integrate the required services/components. Each ASD package contains only one rApp and One rApp can have any number of rApp instances.
Source code repository : https://gerrit.o-ran-sc.org/r/gitweb?p=nonrtric%2Fplt%2Frappmanager.git;a=summary
Architecture
Table of Contents |
---|
Introduction
The rApp Manager is a lifecycle management service for rApps. It gets the rApp as 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.
ASD package contains the details required to create and integrate the required services/components. Each ASD package contains only one rApp and One rApp can have any number of rApp instances.
Source code repository : https://gerrit.o-ran-sc.org/r/gitweb?p=nonrtric%2Fplt%2Frappmanager.git;a=summary
Architecture
All the components can be installed as shown below,
```
./install-all.sh
```
Individual components can be installed using the commands below,
```./install-base.sh``` - Installs the tools required for other installer scripts.
```./install-acm.sh``` - Installs the ACM, and it's related components.
```./install-kserve.sh``` - Installs the Kserve, and it's related components.
```./install-nonrtric.sh``` - Installs the NONRTRIC components.
Integrations
The rApp Manager integrated with the below components to support lifecycle managing the rApp.
ACM
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. More details about ACM can be found here.
ACM-R supports any number of participants and all the participants can be configured through the configuration in the rApp package.
List of participants used by rApp manager sample rApp.
- A1PMS Participant - It interacts with A1PMS of NONRTRIC. It is capable of lifecycle managing A1PMS service.
- Kserve Participant - It interacts with Kserve. It is capable of lifecycle managing Kserve inference service.
- Kubernetes Participant - It interacts with Helm/Kubernetes. It is capable of lifecycle managing Helm charts.
- DME Participant - It interacts with DME(ICS) of NONRTRIC. It is capable of lifecycle managing DME entities.
ACM composition and instance details can be provided as part of rApp package and the package structure can be found here.
DME
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. More details about DME can be found here.
It integrates with rApp manager to enable the rApp produce/consume specific type of data(Information Type in DME terms).
Information type, Data producer/consumer information can be provided as part of rApp package and the package structure can be found here.
SME
The SME(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. More details about DME can be found here.
It integrates with rApp manager to enable the rApp expose/access/discover endpoints.
Service exposure/access related configurations can be provided as part of rApp package and the package structure can be provided as part of rApp package and the package structure can be found here.
State Transitions
rApp States
The rApp lifecycle contains 4 states. The state and transitions are as follows,
...
be found here.
State Transitions
rApp States
The rApp lifecycle contains 4 states. The state and transitions are as follows,
rApp will be |
---|
rApp Instance States
The rApp Instance lifecycle contains 4 states. The state and transitions are as follows,
| once the PRIMING is
| completed. In this state
| instances
| can
| be
| created
| DEPRIMING
| a
|
|
| the
| DEPRIMING
| for rApp
---|
rApp Instance States
The rApp Instance lifecycle contains 4 states. The state and transitions are as follows,
Create rApp
API user creates rApp by sending rApp package
rApp Manager validates the rApp
rApp Manager stores the rApp in the file system if the rApp is valid
API user provided with the status of rApp creation.
API user request to Prime the rApp
rApp Manager fetches the ACM composition from rApp package and
creates the ACM composition in ACM-R
|
---|
Flows
rApp flow
|
---|
Flows
rApp flow
Create rApp
Delete rApp
|
---|
rApp Instance flow
Create rApp Instance
Deploy rApp Instance
|
---|
|
---|
|
---|
|
---|
there is no rApp Instances are available.
API User provided with delete rApp status
rApp Instance flow
CSAR File Generation
CSAR file generator is available in the rAppmanager repository here.
"rappmanager/csar-generator/resources" folder contains the resources to build the rApp package.
The contents of the "resources" directory can be modified as required and the package can be generated as shown below,
Code Block | ||||
---|---|---|---|---|
| ||||
> ./generate.sh |
Code Block | ||||
---|---|---|---|---|
| ||||
> ./generate.bat |
This will generate a package named "rapp.csar". It can be renamed as required.
This generated package can be used with rApp Manager to create rApp.
...
Create rApp Instance
Undeploy rApp Instance
Undeploy rApp Instance
Delete rApp Instance
|
---|
Sample rApp package structure
Warning |
---|
This packaging structure is a prototype and subject to change |
The sample rApp package structure shown below and the location of relevant files for each integration is provided.
...
ACM (Files/Acm)
Definition - Files/Acm/Definition (Only one file)
Instances - Files/Acm/instances
DME (Files/Dme)
Consumer Information Types - Files/Dme/consumerinfotypes
Producer information Types - Files/Dme/producerinfotypes
Information Consumers - Files/Dme/infoconsumers
Information Producers - Files/Dme/infoproducers
SME (Files/Sme)
Providers Functions - Files/Sme/providers
Service Api - Files/Sme/serviceapis
Invokers - Files/Sme/invokers
...
Delete rApp Instance
|
---|
Sample rApp package structure
Warning |
---|
This packaging structure is a prototype and subject to change |
The sample rApp package structure shown below and the location of relevant files for each integration is provided.
ACM (Files/Acm)
DME (Files/Dme)
SME (Files/Sme)
|
---|
CSAR File Generation
CSAR file generator is available in the rAppmanager repository here.
"rappmanager/csar-generator/resources" folder contains the resources to build the rApp package.
The contents of the "resources" directory can be modified as required and the package can be generated as shown below,
Code Block | ||||
---|---|---|---|---|
| ||||
> ./generate.sh |
Code Block | ||||
---|---|---|---|---|
| ||||
> ./generate.bat |
This will generate a package named "rapp.csar". It can be renamed as required.
This generated package can be used with rApp Manager to create rApp.
Deployment Instructions
The scripts for the deployments of rApp Manager and its dependent components are available here.
Tip |
---|
These scripts are specifically designed for a fresh environment. Some tweaks may be required to run these in an environment where there are some existing installations |
Pre-requisites
- Kubernetes Cluster(V1.24.6)
- GIT
Installation
All the components can be installed as shown below,
```
./install-all.sh
```
Individual components can be installed using the commands below,
```./install-base.sh``` - Installs the tools required for other installer scripts.
```./install-acm.sh``` - Installs the ACM, and it's related components.
```./install-kserve.sh``` - Installs the Kserve, and it's related components.
```./install-nonrtric.sh``` - Installs the NONRTRIC components.
Uninstallation
```./uninstall-all.sh``` - Uninstalls all the components