CPS R10 Release Planning

CPS R10 Release Planning

Overview

Project Name

Enter the name of the project

Project Name

Enter the name of the project

Target Release Name

Jakarta

Project Lifecycle State

Incubation

Participating Companies 

Bell Canada, Ericsson, Wipro

Scope

What is this release trying to address?

Further integrate CPS into ONAP architecture through additional components and interfaces such as

  • Extending xNF data write forwarding (delete, update, patch)

  • Extend Sync to include data sync and maintaining sync state

  • AAI integration

  • Read access to cached data (datastore ncmp-datastores:operational)

  • Support Delete event in CPS Temporal

Minimum Viable Product

N/A

Requirements

Priority legend



Committent Legend

Preliminary

Fixed

In Progress

Paused

Completed

De-scoped



Delivered
(on master)

Committed

Study/Investigation
No delivery

Partial Delivery

De-scoped

ONAP Best Practices (Global Requirements)

ONAP Requirement

Notes

CPS- Jira(s)

ONAP Requirement

Notes

CPS- Jira(s)

https://lf-onap.atlassian.net/browse/REQ-1072

Only effects new code but we are adding logging during Jakarta time-frame so have to try to follow the recommended standard

Concerns about availability of all required fields 
Can fields be populated using Springboot automatically?

@Robert Heinemann will organize meeting with us

https://lf-onap.atlassian.net/browse/CPS-869

https://lf-onap.atlassian.net/browse/REQ-1073

@Toine Siebelink  checked and all 3 CPS repos are using /onap/integration-java11:8.0.0 as their base image. So no impact for this Req.

N/A



CPS-CORE / CPS-NCMP Requirements

Jakarta Requirement Jira

Component(s)

Description

Notes

Jakarta commitment

Jira(s)

Jakarta Requirement Jira

Component(s)

Description

Notes

Jakarta commitment

Jira(s)

1

1

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Retrieve list of modules (names) for a CM handle

Used by applications to get cached information from NCMP about models

Delivered in Istanbul

https://lf-onap.atlassian.net/browse/CPS-485

2

2

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Support ncmp-datastores:passthrough-running for read use-case (single CM handle, synchronous only)

Need more details planning and prioritization for use-case not already supported list in this table : CPS-391Spike: Define and Agree NCMP REST Interface#Datastore,PathsandFormatCombinationsforReadOperations

Delivered in Istanbul

https://lf-onap.atlassian.net/browse/CPS-615

https://lf-onap.atlassian.net/browse/CPS-646

3

3

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Separate NCMP-DMI interface from northbound facing 'client' interface

Committed

https://lf-onap.atlassian.net/browse/CPS-645

4

4

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Retrieve cm-handles that have a given list modules



Committed

https://lf-onap.atlassian.net/browse/CPS-644

5

5

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Allow separate registration of DMIDataPlugin and DmiModelPlugin



Committed

https://lf-onap.atlassian.net/browse/CPS-736

6

6

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Support ncmp-datastores:passthrough-running for write use-case (single CM handle, synchronous only)

Replace, Delete & Patch use-cases (#2, #3, #4) in :  CPS-391Spike: Define and Agree NCMP REST Interface#Datastore,PathsandFormatCombinationsforWriteOperations

Committed

https://lf-onap.atlassian.net/browse/CPS-636https://lf-onap.atlassian.net/browse/CPS-637https://lf-onap.atlassian.net/browse/CPS-638https://lf-onap.atlassian.net/browse/CPS-639https://lf-onap.atlassian.net/browse/CPS-640https://lf-onap.atlassian.net/browse/CPS-641

https://lf-onap.atlassian.net/browse/CPS-782https://lf-onap.atlassian.net/browse/CPS-777

https://lf-onap.atlassian.net/browse/CPS-822https://lf-onap.atlassian.net/browse/CPS-823https://lf-onap.atlassian.net/browse/CPS-824https://lf-onap.atlassian.net/browse/CPS-825

7

7

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Define states and state handling for CM handle, e.g. state of model and data sync



Committed (definition only)

https://lf-onap.atlassian.net/browse/CPS-799

8

8



CPS-NCMP

NCMP should publish notifications for any newly added (once synced) or deleted cm handles. 

Includes implementation of state handling (state persistence) as far as applicable as defined by #7 above



https://lf-onap.atlassian.net/browse/CPS-858

https://lf-onap.atlassian.net/browse/CPS-872 

https://lf-onap.atlassian.net/browse/CPS-874https://lf-onap.atlassian.net/browse/CPS-875https://lf-onap.atlassian.net/browse/CPS-876https://lf-onap.atlassian.net/browse/CPS-877https://lf-onap.atlassian.net/browse/CPS-878https://lf-onap.atlassian.net/browse/CPS-909

9

9

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Support public CM handle properties

Basic support for public properties + query capability

Partial Delivery

(query part might not make Jakarta)

https://lf-onap.atlassian.net/browse/CPS-677https://lf-onap.atlassian.net/browse/CPS-817https://lf-onap.atlassian.net/browse/CPS-837https://lf-onap.atlassian.net/browse/CPS-731

10

10

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-Core /
CPS-NCMP

Investigate Horizontal Scaling



Study & Test only

https://lf-onap.atlassian.net/browse/CPS-786

11

11



CPS-NCMP

Implement -async option for CRUD and Patch operations (for one CM-Handle)

Required for potentially long running requests

Note below to be agreed.,,

Responses always published by NCMP to the client topic.

dmi-plugin may publish to NCMP on a local/private topic.  Response event payload contains the public topic name. 

Partial Delivery

https://lf-onap.atlassian.net/browse/CPS-821https://lf-onap.atlassian.net/browse/CPS-828https://lf-onap.atlassian.net/browse/CPS-829https://lf-onap.atlassian.net/browse/CPS-830https://lf-onap.atlassian.net/browse/CPS-832

12

12

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-NCMP

Read access at datastore level

This allows applications to query top-level data nodes without explicitly addressing them. 



https://lf-onap.atlassian.net/browse/CPS-745

https://lf-onap.atlassian.net/browse/CPS-802

https://lf-onap.atlassian.net/browse/CPS-792

13

13

https://lf-onap.atlassian.net/browse/REQ-1071

CPS-Core

YANG language extension support

Investigation

Committed (investigation only)

https://lf-onap.atlassian.net/browse/CPS-735https://lf-onap.atlassian.net/browse/CPS-866

14

14

https://lf-onap.atlassian.net/browse/REQ-1085

CPS-Core

E2E Slicing Impacts Jakarta

J-delivery  wil just include CPS-Core output alignment. But CPS Team will continue to work on cache-related items during Jakarta to be ready for inclusion of that functionality in K to such an extend that in can be used by E2E Sling



https://lf-onap.atlassian.net/browse/CPS-865https://lf-onap.atlassian.net/browse/CPS-819

Temporal DB Requirements

Priority

Jakarta Requirement Jira

Component(s)

Description

Notes

Jakarta commitment

Jira(s)

Functionalities



Stories

key summary type created updated due assignee reporter priority status resolution
Loading...
Refresh



key summary type created updated due assignee reporter priority status resolution
Loading...
Refresh



key summary type created updated due assignee reporter priority status resolution
Loading...
Refresh

Longer term roadmap

  • CPS-Core will have extended query capabilities based on XPath expression.

  • CPS-Core will enforce and control ownership of data it holds

  • NCMP will be able to sync CM Models and Data on any xNF in the network

  • MCMP wil support the query capabilities as CPS-Core and be extend with options similar to RESTConf's 'fields' and 'depth'

  • CPS Temporal aims to complement CPS Core by providing an historical view on CPS data.

Release Deliverables

Indicate the outcome (Executable, Source Code, Library, API description, Tool, Documentation, Release Note, etc) of this release.

Deliverable Name

Deliverable Description

Deliverable Name

Deliverable Description

onap/cps-and-ncmp

Container running CPS and NCMP

onap/cps-temporal

Container running CPS Temporal

onap/ncmp-dmi-plugin

Container running OMAP DMI Plugin

docs.onap.org/projects/onap-cps

CPS-NCMP Documentation for R10 (incl. offered APIs and release note)

docs.onap.org/projects/onap-cps-ncmp-dmi-plugin

ONAP DMI-Plugin Documentation for R10 (incl. offered APIs and release note)

docs.onap.org/projects/onap-cps-cps-temporal

CPS-Temporal Documentation for R10 (incl. offered APIs and release note)

Sub-Components

  • CPS-Core

    • cps-service

    • cps-rest

    • cps-ri (reference implementation)

  • NCMP

    • cps-ncmp-service

    • cps-ncmp-rest

    • dmi-inventory

  • Temporal DB

  • DMI-Plugin

    • DMI Data Access

    • DMI Model Access

Architecture

High level architecture diagram

CPS is a new shared service in the ONAP Architecture:





Platform Maturity

See the centralized wiki page: Jakarta Release Platform Maturity



  • API Incoming Dependencies

No Incoming API changes required

  • API Outgoing Dependencies

API this project is delivering to other projects.

API Name

API Description

API Definition Date

API Delivery date

API Definition link (i.e.swagger)

API Name

API Description

API Definition Date

API Delivery date

API Definition link (i.e.swagger)

CPS-E-01
CPS-E-02
CPS-E-03

CPS Model LifeCycle
CPS Data Write
CPS Data Read





Swagger Sources (openapi.yaml)

CPS-E-04

Change notifications







CPS-E-05

xNF Data Access





Swagger Sources (openapi.yaml)

CPS-E-06

Temporal Data Access
(no other component currently depends on this or plan to use it in Istanbul)





Swagger Sources (openapi.yml)

  • Third Party Products Dependencies

Third Party Products mean products that are mandatory to provide services for your components. 

Name

Description

Version

Name

Description

Version

Docker

VM Container

18 and above

ODL Yang Tools

Yang model and Data Parser

6.0.1 

Postgres Docker image

VM container for Postgres

13.2-alpine

onap/integration-java11

Java Base image

8.0.0

Swagger

OpenAPI library

2.1.4

SpringFox

OpenAPI library

3.0.0

Hibernate types

Support for Postgres datatype JSONB

2.10.0

Spring Boot

Application Framework

2.5.5

cglib-nodep

3pp

3.1

commons-lang3

3pp

3.12.0

antlr4-runtime

Language parser

4.9.2