The Application Deployment use case is being defined to demonstrate how to deploy an application that is in a DEPLOYABLE state as either an xAPP or an rAPP.
Background and Goal of the Use Case
Applications represent an extension of a RAN Intelligent Controller. This can be either as an rAPP for the Non-RT RIC, or as an xAPP for the Near-RT RIC. Applications in these two different environments have different platform mechanisms however, they share a common behavior allowing an abstraction layer to provide the capability for the application to be developed such that it can be deployed to either environment from the same package. In this Use Case the SMO Network Function Orchestrator (NFO) will be simulated to draw out requirements for an SMO implementation. The flow developed as part of this Use Case should be able to be integrated to any SMO environment. Stereotypes are used to indicate which project and capability is being developed or used to provide the described role of the actor in the use case. The following actors are used to demonstrate the flow:
- <<RICAPP>> HelloWorld xAPP: This xAPP provides minimal functionality just to exercise the interface behavior of an application during startup. It is not expected for this xAPP to Consume, Produce, or support A1 Policies as the rest of the abstraction layer may not be available to demonstrate. It should be built with a sidecar software design pattern that allows 2 different sidecars one for the Near-RT RIC (xAPP) and one for the Non-RT RIC (rAPP) the main application and its appropriate sidecar are referenced in different deployment descriptors in the application package.
- <<INT OTF>> Network Function Orchestrator. The OTF environment will be used to sequence together the steps (even if initially manual) to move an application from its onboarded state to a ready to deploy state. Later some of these steps can be removed as more automation is developed.
- <<SMO>> MVC State Manager: This new Model/View/Controller Software Pattern provides state management according to a State Model provided as configuration and storage for associated metadata according to a Schema Definition. The function is deployed as three different instances for three different roles:
- Model Catalog: This function manages the SMO states from Onboarding through Available for Deployment. It represents the design and inventory of onboarded applications as a service model and contains the catalogued components of the application package
- Instance Config: This functions manages the SMO states from Available for Deployement through Deployed. It represents the plan to deploy to a location and allows pre-definition of the deployment configuration values and application configuration values in the SMO.
- Virtual Inventory: The virtual inventory created by the deployment needs to be tracked. ONAP inventory does not yet align with the new aspects of the O-Cloud and therefore is not intended to be used for this release. Instead a simple version with enough to track the deployments will be implemented.
- <<INF O2>> This represents the pre-O2 interface. We are intended to base it initially on Kubernetes with HELM. The NFO will make direct calls the the Cloud in order to facilitate, Image Management, HELM Management, and Pod Deployments.
- <<NRTRIC>> The Non-RT RIC framework provides the R1 abstraction layer and its backend implementation to the environment. We are hoping that the API interface for Register, ConfigurationDescription, and CreateConfig can align with those in the RIC API
- <<RICPLT>> The Near-RT RIC framework provides the RIC API abstraction layer and its backend implementation to the environment. We are hoping that the API interface for Register, ConfigurationDescription, and CreateConfig can align with those in the R1 API
The key goal is that the O-RAN capabilities exist:
- Build an Application which can be deployed as an rAPP or xAPP.
- Verify that the RIC API and R1 API can be common for the deployment steps of an application
- Validate the required steps for O2 deployments based on Kubernetes and HELM
In addition, the use case documentation provides a mapping of the use case requirements to the EPICs defined for O-RAN Software Community (O-RAN SC) Cherry Release. The list below enumerates the EPICs to be added to the Cherry Release. Note that these Epics are of lower priority than the Application LCM Use Case as it is a prerequisite for this use case:
- <<RICAPP>> Provide a Helloworld or extend an existing xAPP to support the deployment and registration steps as either an rAPP or an xAPP
- <<RICPLT>> Provide a RIC API that can be used for RICAPP xAPP deployment scenario
- <<NRTRIC>> Provide a R1 API that can be used for RICAPP rAPP deployment scenario
- <<INT OTF>> Provide Test Strategy to simulate the orchestration of the deployment
- <<INF>> Provide the HELM and Kubernetes APIs to support the Application Deployment
- <<SMO>> Need the MVC for Instance Config and Virtual Inventory