Non-RT RIC rApp Manager

rApp Manager

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.

The ASD package contains the details required to create and integrate the required services/components. The ASD package contains only one rApp and one rApp can have any number of rApp instances.

This product is a part of NONRTRIC.

Architecture

_images/architecture.png

Data Model

_images/rApp-entity-relationship.png

Integrations

The rApp Manager is integrated with the following 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 in ACM.

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.

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. 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.

  • 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 the rApp package and the package structure can be found in Sample rApp package structure.

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 in ICS.

It is integrated with rApp manager to enable the rApp to produce/consume specific type of data(Information Type in DME terms).

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.

SME

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. More details about SME can be found in SME.

It is integrated with rApp manager to enable the rApp to expose/access/discover endpoints.

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.

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

_images/rApp-package-1.png
_images/rApp-package-2.png

Implementation

Implemented as a Java Spring Boot application.

Configuration

The component is configured by the usual Spring Boot application.yaml file.

An example application.yaml configuration file: ‘link

Developer Guide

This document provides a quickstart for developers of the Non-RT RIC rApp Manager.

Additional developer guides are available on the O-RAN SC NONRTRIC Developer wiki.

The rApp Manager is a Java 17 web application built using the Spring Framework. Using Spring Boot dependencies, it runs as a standalone application.

Its main functionality is to lifecycle manage rApps.

Start standalone

The project uses Maven. To start the rApp Manager as a freestanding application, run the following command in the rappmanager/rapp-manager-application directory:

mvn spring-boot:run

There are a few service endpoints that needs to be available to run. These are referred to from the application.yaml file. The following properties have to be modified:

  • rappmanager.acm.baseurl=http://policy-clamp-runtime-acm.default:6969/onap/policy/clamp/acm/v2/

  • rappmanager.sme.baseurl=http://capifcore:8090

  • rappmanager.dme.baseurl=http://informationservice:9082

Start in Docker

To build and deploy the rApp Manager, go to the rappmanager/rapp-manager-application folder and run the following command:

mvn clean install

Then start the container by running the following command:

docker run nonrtric-plt-rappmanager

Kubernetes deployment

Non-RT RIC can be also deployed in a Kubernetes cluster, it/dep repository. 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 on installation of NonRT-RIC in Kubernetes, see Deploy NONRTRIC in Kubernetes.

For more information see Integration and Testing documentation in the O-RAN-SC.

API-Docs

Here we describe the API to access the Non-RT RIC rApp Manager.

rApp Manager

See rApp Manager API for full details of the API.

The API is also described in Swagger-JSON and YAML:

API name

swagger-icon

yaml-icon

rApp Manager API

link

link

Installation Guide

Abstract

This document describes how to install the Non-RT RIC components, their dependencies and required system resources.

Software Installation and Deployment

Install with Helm

Helm charts and an example recipe are provided in the it/dep repo, under “nonrtric”. By modifying the variables named “installXXX” in the beginning of the example recipe file, which components that will be installed can be controlled. Then the components can be installed and started by running the following command:

bin/deploy-nonrtric -f nonrtric/RECIPE_EXAMPLE/example_recipe.yaml

Install with dependent components

The scripts for the deployments of rApp Manager and its dependent components are available in rappmanager/scripts/install directory.

ACM components should be configured with couple of other components for the participants to work.

In case some of the installation is already setup or not set by the installation scripts, the below environment variables can be used to set the configurations ACM through installation scripts.

Variable Name

Description

Default Value

CHART_REPO_HOST

Address of the chart repository.

It will be used by Kubernetes participant.

http://IP_ADDRESS:8879/charts

IP_ADDRESS: IP of the host in which the installation scripts are running.

A1PMS_HOST

Address of the A1PMS.

It will be accessed from A1PMS participant.

http://policymanagementservice.nonrtric:9080

All components can be installed using the command below,

./install-all.sh

Individual components can be installed using the commands below,

To install the tools required for other installer scripts.

./install-base.sh

To install the ACM, and it’s related components.

./install-acm.sh

To install the Kserve, and it’s related components.

./install-kserve.sh

To installs the NONRTRIC components.

./install-nonrtric.sh

Uninstallation

To uninstall all the components

./uninstall-all.sh

Release-Notes

This document provides the release notes for the release of the Non-RT RIC rApp Manager.

Version history rApp Manager

Date

Ver.

Author

Comment

2023-12-15

0.0.1

John Keeney

I Release

Release Data

I Release

Project

Non-RT RIC

Repo/commit-ID

3b8a84a5cb9cb6ec5a3f4a8ca038431769bced84

Release designation

I

Release date

2023-12-15

Purpose of the delivery

o-ran-sc/nonrtric-plt-rappmanager:0.0.1

First release