Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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,



  1. COMMISSIONED
    rApp will be in this state right after creation and
    once the DEPRIMING is completed
  2. PRIMING
    This is a transition state. rApp will be in this
    state once the PRIMING requested for rApp
  3. PRIMED
    rApp will be in this state
  4. right
  5. once 
  6. after
  7. the 
  8. creation
  9. PRIMING 
  10. and
  11. is 
  12. once the DEPRIMING is completed
  13. PRIMINGcompleted. In this state rApp instances can be 
    created
  14. DEPRIMING
    This is a transition state. rApp will be
    in this

  15. state once the 
  16. PRIMING
  17. DEPRIMING requested for rApp
  18. PRIMED
    rApp will be

Image Added


rApp Instance States

The rApp Instance lifecycle contains 4 states. The state and transitions are as follows,

once the PRIMING iscompleted. In this stateinstancescanbecreatedDEPRIMING
a
theDEPRIMING for rApp



  1. UNDEPLOYED
    rApp instance gets created in this state
  1. and 
  1. once the rApp 
  1. Instance 
  1. undeploy 
  1. is completed
  1. DEPLOYING
  1. This is 
  1. the transition state. rApp instance will

  1. be
  1. in this state once 
  1. DEPLOY 
  1. is requested

Image Removed

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
  • rApp Manager gets the ACM composition creation status from ACM-R
    1. UNDEPLOYED
    2. DEPLOYED
      rApp instance getswill createdbe in this state and
      once the rApp
      rapp Instanceinstance undeploydeployment is completed.
    3. DEPLOYINGUNDEPLOYING
      This is thea transition state. rApp instance will
      be in this state once DEPLOY is requested
    4. DEPLOYED
      rApp instance will be in this state once the
      rapp instance deployment is completed.
    5. UNDEPLOYING
      This is a transition state. rApp instance will
      be in this state once UNDEPLOY requested for
      rApp instance

    Image Removed

    Flows

    rApp flow


    1. be in this state once UNDEPLOY requested for
      rApp instance

    Image Added


    Flows

    rApp flow

    Create rApp

    1. API user creates rApp by sending rApp package
    2. rApp Manager validates the rApp
    3. rApp Manager stores the rApp in the file system if the rApp is valid
    4. API user provided with the status of rApp creation.
    5. API user request to Prime the rApp
    6. rApp Manager fetches the ACM composition from rApp package and 
      creates the ACM composition in ACM-R
    7. rApp Manager gets the ACM composition creation status from ACM-R
    8. rApp Manager request ACM-R to prime the ACM composition 
    9. rApp Manager gets the ACM composition priming status from ACM-R
    10. rApp Manager checks with DME for the unknown information type from rApp package
    11. rApp Manager get the information type availability from DME
    12. API user provided with the status of rApp priming

    Delete rApp

    1. API user request to Deprime rApp
    2. rApp Manager request ACM-R to primedeprime the ACM composition 
    3. rApp Manager getsget the status of ACM composition priming status from ACM-RrApp Manager checks with DME for the unknown information type from rApp packagedepriming.
    4. rApp Manager requests ACM-R to delete the ACM composition 
    5. rApp Manager getgets the informationstatus typeof availabilityACM fromcomposition DMEdeletion
    6. API user provided with the statusdeprime of rApp priming
    Delete rApp
    1. status.
    2. API user request to Deprimedelete the rApp
    3. rApp Manager validates that the rApp Manageris in requestCOMMISSIONED ACM-Rstate toand deprime
      there theis ACMno composition rApp Manager get the status of ACM composition depriming.
    4. rApp Manager requests ACM-R to delete the ACM composition 
    5. rApp Manager gets the status of ACM composition deletion
    6. API user provided with the deprime rApp status.Instances are available.
    7. API User provided with delete rApp status

    Image Added


    rApp Instance flow

    Create rApp Instance

    1. API user request to create rApp Instance with the resource details from rApp package
    2. API user get the rApp instance creation response

    Deploy rApp Instance

    1. API user request to 
    delete
    1. deploy 
    the
    1. rApp 
    rApp
    1. instance
    2. rApp Manager 
    validates that the rApp is in COMMISSIONED state and
    there is no rApp Instances are available.
  • API User provided with delete rApp status
  • Image Removed

    rApp Instance flow

    Image Removed

    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
    languagebash
    titleLinux: Generate rApp package
    > ./generate.sh
    Code Block
    languagepowershell
    titleWindows: Generate rApp package
    > ./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

    1. API user request to create rApp Instancefetches the rApp package from file system and fetches the 
      resources mentioned in the rApp instance.
    2. rApp Manager request ACM-R with the resourcenecessary details from rApp packageAPI user get the rApp instance creation to 
      Instantiate ACM instance
    3. rApp Manager gets instantiate ACM instance response
    Deploy
    1. rApp
    Instance
    1. API userManager request ACM-R to deploy rAppACM instance
    2. rApp Manager fetchesACM-R deploys the rAppA1PMS package from file system and fetches the 
      resources mentionedinstance if it is configured in the rAppACM instance.rApp Manager request
    3. ACM-R withgets the necessaryA1PMS details from rApp package to 
      Instantiate ACM instance
    4. rApp Manager gets instantiate ACM instance response
    5. rApp Manager request ACM-R to deploy ACM instancedeployment status
    6. ACM-R deploys the Kserve instance if it is configured in the ACM instance
    7. ACM-R gets the Kserve deployment status
    8. ACM-R deploys the A1PMSKubernetes instance if it is configured in the ACM instance
    9. ACM-R gets the A1PMSKubernetes deployment status
    10. ACM-R deploys the KserveDME instance if it is configured in the ACM instance
    11. ACM-R gets the Kserve deployment status
    12. ACM-R deploys the Kubernetes instance if it is configured in the ACM instance
    13. ACM-R gets the Kubernetes deployment status
    14. ACM-R deploys the DME instance if it is configured in the ACM instance
    15. ACM-R gets the DME deployment status
    16. rApp Manager gets ACM deployment status
    17. rApp Manager request SME to create the entities in rApp instance
    18. SME creates the entities provided by rApp Manager
    19. rApp manager get the response of SME entities creation
    20. API user provided with the status of rApp instance deployment. rApp Manager combines 
      the status of ACM deployment and SME deployment to provide the rApp instance status.

    Undeploy rApp Instance

    1. API user request to undeploy rApp instance
    2. rApp Manager fetches the rApp and rApp instance details
    3. rApp Manager request ACM-R to undeploy the ACM instance DME deployment status
    4. rApp Manager gets ACM deployment status
    5. rApp Manager request SME to create the entities in rApp instance
    6. SME creates the entities provided by rApp Manager
    7. rApp manager get the response of SME entities creation
    8. API user provided with the status of rApp instance deployment. rApp Manager combines 
      the status of ACM deployment and SME deployment to provide the rApp instance status.

    Undeploy rApp Instance

    1. API user request to undeploy rApp instance
    2. rApp Manager fetches the rApp and rApp instance details
    3. rApp Manager request ACM-R to undeploy the ACM instance
    4. ACM-R undeploy the A1PMS instance if it is already deployed
    5. ACM-R gets the A1PMS undeploy status
    6. ACM-R undeploy the Kserve instance if it is already deployed
    7. ACM-R gets the Kserve undeploy status
    8. ACM-R undeploy the Kubernetes instance if it is already deployed
    9. ACM-R gets the Kubernetes undeploy status
    10. ACM-R undeploy the A1PMSDME instance if it is already deployed
    11. ACM-R gets the A1PMS undeploy status DME undeploy status
    12. rApp Manager get ACM undeploy status
    13. rApp Manager request ACM-R to undeploydelete the KserveACM instance if it is already deployed
    14. ACM-R gets the Kserve undeploy status
    15. ACM-R undeploy the Kubernetes instance if it is already deployed
    16. ACM-R gets the Kubernetes undeploy status
    17. ACM-R undeploy the DME instance if it is already deployed
    18. ACM-R gets the DME undeploy status
    19. rApp Manager get ACM undeploy status
    20. rApp Manager request ACM-R to delete the ACM instance
    21. rApp Manager get response of ACM instance deletion
    22. rApp Manager request SME to delete SME entities
    23. SME deletes the entities created as part of rApp
    24. rApp Manager get the response of SME entities deletion
    25. API user get the status of undeploy rApp instance

    Delete rApp Instance

    1. API user request rApp Manager to delete rApp Instance
    2. API user gets delete rApp instance response

    Image Removed

    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

    ...

    Image Removed

    1. rApp Manager get response of ACM instance deletion
    2. rApp Manager request SME to delete SME entities
    3. SME deletes the entities created as part of rApp
    4. rApp Manager get the response of SME entities deletion
    5. API user get the status of undeploy rApp instance

    Delete rApp Instance

    1. API user request rApp Manager to delete rApp Instance
    2. API user gets delete rApp instance response


    Image Added



    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

    Image Added



    Image Added


    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
    languagebash
    titleLinux: Generate rApp package
    > ./generate.sh


    Code Block
    languagepowershell
    titleWindows: Generate rApp package
    > ./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