ASD-Based CNF Orchestration PoC

ASD-Based CNF Orchestration PoC

Note: Work in Progress



Requirement

Key Contacts - @Byung-Woo Jun (Ericsson), ...

Executive Summary Provide ASD-based CNF orchestration support through SO and its sub-components, CNFM and CNF Adapter using K8S

  • Support for provisioning ASD-based CNFs using an external K8s Manager

    • Instantiate and optionally overwrite the values of an application

    • Delete an application and optionally remove all relevant Persistent Volume Claims and Persistent Volumes

    • Change application details using the change package function, which allows to change the deployment version of the CNF thru an upgrade or rollback (stretch goal)

  • Leverage and enhance SO capabilities and adding new capabilities for ASD- and Helm-based CNF orchestration

    • Orchestrator shall support the capability to use the deployment parameters from ASD for the application or CNF deployment. These deployment parameter values shall correspond to the parameters defined in the “lifecycleParameters” section(s) of the ASD.

    • Orchestrator shall support the capability to construct a values file from instance specific parameter values provided at deployment time, and default values supplied in the chart.

    • Orchestrator shall support the capability to perform a chart render into concrete K8S resource descriptions.

    • Container resource management for determining placement for CNF application on certain K8S cluster(s), orchestrator shall support the capability to parse the workload descriptors and extract those values.

Business Impact Enables operators and service providers to orchestrate ASD-based CNFs services along with the VNFs and PNFs

Business Markets - All operators and service providers that are intended to use the ASD-based CNFs along with PNFs / VNFs

Funding/Financial Impacts - Reduction in the footprint of the ONAP for CNF support

Organization Mgmt, Sales Strategies - There is no additional organizational management or sales strategies for this requirement outside of a service providers "normal" ONAP deployment and its attendant organizational resources from a service provider

JIRA: https://lf-onap.atlassian.net/browse/REQ-1043

Concepts

  • K8S CISM Cluster: Container Infrastructure Service Manager Cluster performs the same function as VIM Zone but operates on containerized application level.

  • CNF: Cloud Native Network Function. Containerized VNF is designed to be deployed in the cloud as a container. CNF is a better fit for microservice architecture due to the deployment size.

  • Kubernetes: Kubernetes (K8s) is an open-source system for automating deployment, scaling and management of containerized applications

  • POD: A Pod is a group of one or more containers (such as Docker containers), with shared storage/network, and a specification for how to run the containers.

Scope

In Scope

See the Epic and User Stories.

Out of Scope

TBD

Epic

Epic

Description

JIRA

priority

Epic

Description

JIRA

priority

SO and its sub-components, CNFM, CNF Adapter, shall support ASD-based CNF lifecycle orchestration

SO and its sub-components, CNFM, CNF Adapter, shall support ASD-based CNF lifecycle orchestration (deployment and configuration)

https://lf-onap.atlassian.net/browse/SO-3808

1

















User Story

Function

Affected Component

User Story & Description

JIRA

Priority

PoC Scope Y/N

Function

Affected Component

User Story & Description

JIRA

Priority

PoC Scope Y/N

SO shall get the ASD-based CNF package from SDC and store its metadata to SO Catalog DB

ASDC Controller,

CatalogDB Adapter,

CatalogDB

SO shall get the ASD-based CNF package (SDC Service CSAR) from SDC and store its metadata to SO Catalog DB.

  • SO ASDC Controller handles ASD-based CNF Service CSAR onboarding

    • When SO gets a package notification from DMaaP, SO SDC Controller queries SDC for the ASD-based CNF Service CSAR that embeds the ASD-based CNF Resource VF.

  • SO Catalog DB Handling for ASD-based CNF packages

    • SO distinguishes the ASD-based CNF package based on the package metadata, and stores the ASD-based CNF package metadata and artifacts to SO Catalog DB

      • Resource VF TOSCA.metadata will have the "ASD" entity_definition_type

Pre Condition:

  • SO  SDC Controller, CatalogDB Adapter and CatalogDB component instances are running and ready to get SDC notifications

Post Condition:

  • SO Catalog DB contains the ASD-based CNF package metadata and artifacts

https://lf-onap.atlassian.net/browse/SO-3839

1















For ASD-based CNF provisioning, SO shall process model info, decide flows and invoke SO CNFM for AS LCM

API Handler,

RequestDB Adapter,

RequestDB,

SO BPMN Infra, 

AAI

SO CNFM

Enhance SO API Handler and BPMN Infra workflow(s) for AS LCM

  • SO endpoints shall be enhanced for handle ASD-based CNF LCM

  • SO API Handler receives a service request for ASD-based CNF and stores the request information into the Request DB

  • Thru workflow(s) mapping, SO API Handler invokes BPMN Infra workflows (e.g., Workflow_BB Execute)

    • Configure SO MacroFlows configurations for invoking BPMN Infra workflows

  • SO BPMN Infra decomposes Service into VF Resource(s), and per VF resource, SO BPMN Infra process AS resource handling

    • If the VF resource metadata indicates the ASD-based VF (e.g., entity_definition_type='ASD' or 'asd'), SO shall process ASD-based CNF workflows

  • SO Create Service Instance to AAI

    • SO shall create service instance to AAI, leveraging existing AAI schema service

Post Condition:

  • SO API Handler receives SO requests and invoke BPMN Infra Workflow(s) for AS LCM.

https://lf-onap.atlassian.net/browse/SO-3905

2



SO BPMN Infra shall trigger Create AS Instance workflow(s).

  • Enhance BPMN Infra workflow(s) to add the Create AS workflow(s) for Create AS

  • BPMN Infra workflow(s) shall launch the Create AS workflow(s)

  • Create AS workflow(s) invokes SO CNFM thru AS LCM Restful Create AS APIs

Post Condition:

  • SO CNFM Create AS NBI is invoked for Create AS

https://lf-onap.atlassian.net/browse/SO-3840

2.1



SO BPMN Infra shall trigger Instantiate AS Instance workflow(s).

  • BPMN Infra main workflow(s) shall launch the enhanced AS workflow(s) for Instantiate AS

  • Enhance BPMN Infra AS workflow(s) to enhance/add the Instantiate AS service task(s) for Instantiate AS

    • Extract required user parameters from the Service request body

    • add service task(s) to invoke SO CNFM thru Instantiate AS

    • Instantiate AS operation message pattern is async. Add a subsequent service task will get acknowledgement or error

    • Add next Instantiate AS service task(s) to query for the Instantiate AS status

Pre Condition:

  • Create AS Workflows have been performed

Post Condition:

  • Instantiate AS service task(s) invoke Instantiate AS operations and get acknowledgment/error and get the Instantiate AS status

https://lf-onap.atlassian.net/browse/SO-3881

2.2



SO BPMN Infra shall trigger Delete AS Instance workflow(s).

  • Enhance BPMN Infra workflow(s) to add the Delete AS workflow(s) for Delete AS

  • BPMN Infra workflow(s) shall launch the Delete AS workflow(s)

  • Delete AS workflow(s) invokes SO CNFM thru AS LCM Restful Instantiate AS APIs

Pre Condition:

  • Create/Instantiate AS Workflows have been performed

Post Condition:

  • SO CNFM Delete AS NBI is invoked for Delete AS

https://lf-onap.atlassian.net/browse/SO-3885

2.3



ONAP Admin Creates Cloud Region(s) and Tenant(s) in AAI

Note: use existing AAI admin interfaces (no SO code impact)

  • ONAP Admin creates new cloud region(s) and tenant(s) in AAI

    • Each K8S cluster is registered as a cloud-region in AAI, but K8S cluster connectivity info will not be stored in AAI

    • In CNFO, MultiCloud K8S Plugin will hold the K8S connectivity info

    • In our case, SO CNFM will hold the K8S connectivity info

      • See the SO CNFM register/deregister K8S clusters operations for more details

  • note: CNFO AAI Model K8S Resource Object Relations

https://lf-onap.atlassian.net/browse/SO-3882

2.4



In BPMN Infra, create the Create AS Workflow(s) to launch SO CNFM for Create AS 

Post Condition:

  • SO CNFM Create AS is invoked and AsInstance object is returned if the operation is successful; otherwise, an error will be returned

https://lf-onap.atlassian.net/browse/SO-3883

2.5



Enhance Instantiate AS Business Logic (Java code) to launch SO CNFM for Instantiate AS 

Post Condition:

  • SO CNFM Instantiate AS is invoked and the request is accepted

https://lf-onap.atlassian.net/browse/SO-3884

2.6



Enhance Delete AS Workflow(s) to launch SO CNFM for Delete AS 

Post Condition:

  • SO CNFM Delete AS is invoked and the AS instance and associated resource are deleted

https://lf-onap.atlassian.net/browse/SO-3886

2.7











SO CNFM shall process ASD-based CNF Lifecycle orchestration









































SO CNFM,

ASD Repository,

Helm Artifact Repository,

OOF,

AAI, 

SDNC Adapter,

SDNC





































































Create SO CNFM and make it available in ONAP

  • Create SO CNFM as an SO sub-component, with NBI, Business Logic and SouthBound Plugin for 1) Helm Client or 2) CNF Adapter

    • In this PoC, the Helm Client SouthBound Plugin will be used

    • use of the CNF Adapter is a future consideration.

  • Make SO CNFM POD is deployable in OOM

  • Register SO CNFM POD to AAI automatically to be recognized

Post Condition:

  • SO CNFM is available

https://lf-onap.atlassian.net/browse/SO-3888

3



Create ASD LCM REST API Swagger

Post Condition:

  • Swagger file is ready for SO CNM NBI

https://lf-onap.atlassian.net/browse/SO-3889

3.1



Create SO CNFM NBI API Handler based on ASD LCM Restful Protocol swagger, no-ops

Post Condition:

  • SO CNFM NBI API Handler is ready to receive SO BPMN Infra requests, with no-ops

https://lf-onap.atlassian.net/browse/SO-3890

3.2



Implement Create AS Business Logic in SO CNFM NBI Handler to invoke the Create AS workflows(s)

Post Condition:

  • SO CNFM NBI Handler is able to invoke Create AS workflow(s)

https://lf-onap.atlassian.net/browse/SO-3893

3.3



Implement Instantiate AS Business Logic in SO CNFM NBI Handler to invoke the Instantiate AS workflows(s)

Post Condition:

  • SO CNFM NBI Handler is able to invoke Instantiate AS workflow(s)

https://lf-onap.atlassian.net/browse/SO-3904

3.4



Implement Delete AS Business Logic in SO CNFM NBI Handler to invoke Delete AS workflows(s)

Post Condition:

  • SO CNFM NBI Handler is able to invoke Delete AS workflow(s)

https://lf-onap.atlassian.net/browse/SO-3894

3.5



Create SO CNFM Workflow(s) for Create AS 

  • Create AS Service Task(s) will invoke corresponding Create AS Java-based business logic.

Post Condition:

  • Workflow(s) for Create AS is ready

https://lf-onap.atlassian.net/browse/SO-3891

3.6



Create SO CNFM Workflow(s) for Instantiate AS

  • Instantiate AS Service Task(s) will invoke corresponding Instantiate AS Java-based business logic.

  • add vf module and k8s resource obj in A&AI

Post Condition:

  • Workflow(s) for Instantiate AS is ready

https://lf-onap.atlassian.net/browse/SO-3906

3.7



Create SO CNFM Workflow(s) for Delete AS

  • Delete AS Service Task(s) will invoke corresponding Delete AS Java-based business logic.

Post Condition: