CPS R12 Release Planning

Overview

Project NameEnter the name of the project
Target Release NameLondon
Project Lifecycle StateIncubation
Participating Companies Deutsche Telecom (Tech Mahindra) , Ericsson, Fujitsu, Wipro

Scope

What is this release trying to address?

  1. Upgradability (CPS, NCMP)
    1.  Version strategy to  control Continuous Delivery (CPS and NCMP)
      1. Technical debt of NCMP data be handled by Liquibase in CPS
    2. Yang Module Upgrade
      1. backward compatible
      2. backward incompatible
        1. Data Transformation/Migration
        2. Drop (and resync) 
  2. Service Maturity CPS
    1. Delivery Pipelines 
    2. Helm best practices (design rules)
    3. FOSS audit
  3. Service Maturity NCMP (TBC)
  4. Performance (CPS, NCMP)
    1. CPS Data read 
    2. CPS Model-based query
    3. Registration algorithm change (using schemaSet hash)
  5. CM Handle Connectivity State
  6. Notification Configuration
    1. Model based
    2. Instance based
  7. Query Propagation
    1. Amalgamate responses
    2. Capability Exchange (during registration/updates) 

Stretch Goals

  1. Forwarding non-passtrough 
    1. data request
    2. notifications
  2. Cache Configuration
    1. Model based
    2. Instance based, container, leaf
  3. AAI integration
  4. Extend Read(query) access to cached data (datastore ncmp-datastores:operational)
    1. cpsPath support in NCMP
    2. field' and 'depth' RestConf-Like support in CPS (and NCMP)
  5. Extend CPS-Path (query) capabilities
  6. CPS Target Based Access Control (TBAC)
    1. Ownership of dataspaces using OAuth2 
  7. NCMP Access Control
  8. Multiple Identifiers for Anchors (CM Handles)

Minimum Viable Product

N/A

Requirements

Priority legend
PreliminaryPlanned for current ONAP ReleaseIn ProgressPausedCompletedDe-scoped

ONAP Best Practices (Global Requirements) and similar

ONAP RequirementNotesCPS- Jira(s)

REQ-443 - Getting issue details... STATUS

Aiming for gold!
  1. Need to complete Survey
  2. Dependency on ONAP Infrastructure Tickets

CPS-1140 - Getting issue details... STATUS

REQ-439 - Getting issue details... STATUS




ONAP script might help us with common quality issues and save reviewing time

CPS-1324 - Getting issue details... STATUS

CPS-temporal Requirements (TBC)

CPS-CORE / CPS-NCMP Requirements

PriorityLondon
Requirement Jira
Component(s)DescriptionNotesTeam & 
Work-Item Owner
Jira(s)
1

REQ-1405 - Getting issue details... STATUS

CPS-NCMPRegistration Performance

NCMP shall register new cmhandles (to READY state) at a rate of 11 cmhandles/second (assumes no dmi-plugin delays, assumes 180 modules per cmhandle with 95% module overlap between cmhandles, assumes cache disabled).

Treat this as a black box requirement.  May mean underlying requirement to have multiple instances, memory requirement etc.  Focus right now is 23.Q1 timeframe.

CPS-1172 - Getting issue details... STATUS CPS-1275 - Getting issue details... STATUS CPS-1267 - Getting issue details... STATUS CPS-1400 - Getting issue details... STATUS

2

REQ-1405 - Getting issue details... STATUS

CPS-NCMP
CPS-Core
Data Write/Read Performance

NCMP (read) Requirements

  1. It shall be possible get all cmhandles (anchors) (question) for a given module name at a rate of 1000 cmhandles / second (assuming 20k cmhandles are registered)
  2. It shall be possible to get all cmhandles (anchors) (question) with a given public property at a rate of 500/second  (assuming 20k cmhandles are registered) Depensds on  CPS-1348 - Getting issue details... STATUS

kieran mccarthy For this step we can focus on just returning just the cmhandlesIds.  Anything further can be covered by another step.

Note. This now overlaps with work be done with Wipro/Fujitsu, see CPS Performance Testing

CPS-1171 - Getting issue details... STATUS CPS-1326 - Getting issue details... STATUS CPS-1344 - Getting issue details... STATUS

CPS-1443 - Getting issue details... STATUS
CPS-1445 - Getting issue details... STATUS

CPS-1475 - Getting issue details... STATUS CPS-1509 - Getting issue details... STATUS
CPS-1516 - Getting issue details... STATUS CPS-1494 - Getting issue details... STATUS CPS-1519 - Getting issue details... STATUS CPS-1525 - Getting issue details... STATUS CPS-1536 - Getting issue details... STATUS

3

REQ-1316 - Getting issue details... STATUS

CPS-NCMPSupport ncmp-datastores:operational for querying data (single CM handle, synchronous only)See CPS-391 page for details about supported operations and combinations.

CPS-1002 - Getting issue details... STATUS

4

REQ-1405 - Getting issue details... STATUS

CPS-Core
CPS-NCMP

DMI Audit

  1. DMI audit support for NCMP: Get cm handles with property details (CPS-1236)
  2. It shall be possible to get all anchors with a given public property on CPS-E-02  (CPS-1348)
    *Note Double check the intention of this with kieran mccarthy 
    [ ekiemcc ] DMI Plugin may use public property to carry our some audit functionality.  For example it could contain some public attribute like regionId  that is useful info for rApps but may also be used by the DMI plugin to periodically query on certain regions and take some action based on a policy for that region.  Yes, it is possible to duplicate the attribute in the private properties but this is not ideal to have to maintain two attributes (one public and one private) representing the same thing !

CPS-1236 - Getting issue details... STATUS

5

REQ-1405 - Getting issue details... STATUS

CPS-NCMP[investigation/spec] CM data notifications from NCMP to applications including subscriptionsIncludes definition of notification and payload formatkieran mccarthy 

CPS-1065 - Getting issue details... STATUS CPS-1259 - Getting issue details... STATUS CPS-1362 - Getting issue details... STATUS

6

REQ-1405 - Getting issue details... STATUS

CPS-NCMPImplementation of CM data notifications forwarded by NCMP from DMI to applicationImplementing Data Notifications & Subscription Notifications on a US by US basis

Notifications

CPS-1385 - Getting issue details... STATUS CPS-1386 - Getting issue details... STATUS

Subscriptions

CPS-1431 - Getting issue details... STATUS CPS-1392 - Getting issue details... STATUS CPS-1393 - Getting issue details... STATUS CPS-1394 - Getting issue details... STATUS
CPS-1492 - Getting issue details... STATUS CPS-1496 - Getting issue details... STATUS CPS-1497 - Getting issue details... STATUS

CPS-1561 - Getting issue details... STATUS CPS-1573 - Getting issue details... STATUS CPS-1599 - Getting issue details... STATUS

CPS-1565 - Getting issue details... STATUS

7

REQ-1316 - Getting issue details... STATUS

REQ-1405 - Getting issue details... STATUS

CPS-NCMPSupport update of cached data through a message driven solution.
Respond to  VES Events from Devices in ONAP
Receive VES Event and transform it into a 'standard DMI→NCMP events (schema owned by NCMP)

CPS-1434 - Getting issue details... STATUS CPS-1411 - Getting issue details... STATUS CPS-1412 - Getting issue details... STATUS CPS-1413 - Getting issue details... STATUS

CPS-1559 - Getting issue details... STATUS

8
CPS-NCMP
(CPS-Core)
Deletion Performance
/ Delete CM Handles on criterion (TBC)
NCMP shall delete/remove cmhandles (to DELETING state) at a rate of 50 cmhandles/second with cache disabled (assumes no dmi-plugin delays, assumes 180 modules per cmhandle with 95% module overlap between cmhandles)
Note: check with Gergely on priority as DELETING state will prevent user to act on cmhandle
Note 2. This might need to be split into 'Delete on criterion ie. public/private property' and delete for 'internal/test use' performance

CPS-1173 - Getting issue details... STATUS CPS-1422 - Getting issue details... STATUS CPS-1426 - Getting issue details... STATUS CPS-1424 - Getting issue details... STATUS

CPS-1423 - Getting issue details... STATUS CPS-1438 - Getting issue details... STATUS CPS-1437 - Getting issue details... STATUS CPS-1439 - Getting issue details... STATUS CPS-1464 - Getting issue details... STATUS

CPS-1471 - Getting issue details... STATUS

CPS-1523 - Getting issue details... STATUS

9
CPS-NCMPBulk Operations (Get, Query)Allow bulk operations for NCMP (and/or) CPS REST Interfaces

CPS-1515 - Getting issue details... STATUS

CPS-1550 - Getting issue details... STATUS

CPS-1553 - Getting issue details... STATUS

CPS-1555 - Getting issue details... STATUS

CPS-1556 - Getting issue details... STATUS

CPS-1557 - Getting issue details... STATUS

CPS-1558 - Getting issue details... STATUS

CPS-1560 - Getting issue details... STATUS

CPS-1583 - Getting issue details... STATUS

CPS-1614 - Getting issue details... STATUS

10
CPS-NCMPCM Handle Connectivity Freshness/Staleness

Need to model what staleness is (current CPS only has concept of model-sync state, nothing about connectivity)
kieran mccarthy to spec this


CPS-1415 - Getting issue details... STATUS

11

CPS-1128 - Getting issue details... STATUS

Deutsche Telekom
(TechMahindra)

CPS-Core /
CPS-NCMP
Support for list as top level data node

CPS-491 - Getting issue details... STATUS CPS-765 - Getting issue details... STATUS CPS-766 - Getting issue details... STATUS CPS-767 - Getting issue details... STATUS

CPS-1586 - Getting issue details... STATUS

12

CPS-1128 - Getting issue details... STATUS

Deutsche Telekom
(TechMahindra)

CPS-Core /
CPS-NCMP
Support for multiple top-elements from different modules in one CM handle/anchor


CPS-1051 - Getting issue details... STATUS CPS-341 - Getting issue details... STATUS

13

REQ-1405 - Getting issue details... STATUS

NCMP-CPSSupport NCMP-CPS upgrade

Currently only custom upgrade is supported. (upon request)

Requirement: It shall be possible to upgrade NCMP-CPS from release N-1 to N (without requiring manual intervention/workarounds). N is defined as any release requested by ESH

  • Note. Need to agree version strategy: use current ONAP x.y.z. numbering. Ericsson to communicate when a version is to be 'delivered' and 'y' increased

Technical Debt to be addressed: Liquibase is used in CPS to manage data(upgrades) in CPS

Study: Resolve technical debt (mixed data). NCMP Data upgrade. CPS Core need to support model upgrade so that NCMP can use it,


CPS-1345 - Getting issue details... STATUS

14

REQ-1405 - Getting issue details... STATUS

CPS-Core
NCMP-CPS
Support multiple identifiers (alternatives for CM Handle ID)




15

REQ-1316 - Getting issue details... STATUS


Support for 'Instance Identifier'Should be possible to identify a cmhandle using multiple instance identifiers

CPS-1180 - Getting issue details... STATUS

16


CPS-NCMPInvoke YANG modelled action

Always on operational datastore.  Supported for nmcp:passthrough-operational and if executed against ncmp:operational then it is always forwarded to dmi plugin.  Is there another story for forwarding to be included as a dependency? Always run as async request.  Is this dependent on CPS-1127  - see spin-off user stories table below this on.

KMC : Can we deprioritize - this can be run against passthrough-operational for now.  Just have to agree on the API / URL for the action to progress at this stage so that the passthrough-operational form is aligned with final operational form.



17
CPS-NCMPEnhanced query support

Currently the passthrough has an 'fields' parameter to do a scoped query.  Propose to support this in non-passthrough so it is promoted to a fully supported option, e.g. {ncmp-root}/ncmp/v1/ch/335ff/data/ds/ncmp-datastore:passthrough-operational?
              resourceIdentifier=/&options=(fields=ericsson-enm-comtop:ManagedElement/ericsson-enm-
              gnbcucp:GNBCUCPFunction
/EndpointResource/LocalSctpEndpoint/attributes(sctpEndpointRef),
              scope=ericsson-enm-comtop:ManagedElement/ericsson-enm-gnbcucp:GNBCUCPFunction/
               EndpointResource/LocalSctpEndpoint/attributes(interfaceUsed==X2))

KMC : Do we support restconf like queries or xpath only?



18Move above 8CPS_Core / CPS-NCMPUpdate YANG schema-set for CM handle without removing and adding it

Cached data is not in scope. Need to specify orphan handling of YANG modules.

Needed for node upgrade scenario.



19


CPS-NCMPRetrieve single module resource/v1/ch/{cm-handle}/modules/definitions/{moduleName}

20
CPS-Core / CPS-NCMPExisting CPS-path based queries across all CM handles for cached data

Look to define the interface specification for this only.

(but best way is to implement for operational/cached data to determine any output formatting issues)



21
CPS-Core /
CPS-NCMP
Access control for public interfaces (NCMP, CPS-Core, DMI?)KMC : What level of access control is there today - both on CPS and NCMP interfaces?

22
CPS-NCMPFine-grained cache configuration


23
CPS-NCMPSend notification for updated CM handle metadata (public CM handle properties or YANG modules)


24
CPS-Core /
CPS-NCMP

Support for HTTPS and authentication

  • Use Service-Mesh? Both ONAP and Ericsson (applied ISTIO using Envoy Proxy side-car) are working towards this. Check with Gareth Roper 


CPS-703 - Getting issue details... STATUS

25

TBC

CPS-NCMPSupport ncmp-datastores:running for reading data (single CM handle, synchronous only)See CPS-391 page for details about supported operations and combinations. Note: There can be some overlap between work items for #5, #6, #11 and #12.

26TBCCPS-Core /
CPS-NCMP
Support ncmp-datastores:running for writing data (single CM handle, synchronous only)


27TBCCPS-CoreSend notifications on write operation in ncmp-datastores:running for (single CM handle, synchronous only)


28
CPS-Core /
CPS-NCMP
schema-set update for CM handle with cached data presentNeed to address case with incompatible model changes.

29(ONAP) E2E Slicing Use-Case

Support dynamic inventory changes (ONAP DMI Plugin)

React to events from AAI sent over DMaaP, in turn using Inventory API for updates.
Strimzi-Kafka Bridge might be an alternative, check with Fiachra Corcoran  on the latest for this when implementing this ( DMAAP-1681 - Getting issue details... STATUS )

Possible in a generic way or it can also listen to similar events sent by SDN-R  (as suggested by Ahila P)


CPS-392 - Getting issue details... STATUS CPS-393 - Getting issue details... STATUS

30
CPS-NCMPAutomatic (optional) Data Sync Metadata (per cmHandle) controls whether this will happen or not

31
CPS-NCMPInvoke YANG modelled RPC


Spin-off user stories, yet to be prioritized

 JiraComponent(s)Related Work ItemDescriptionNotes

CPS-1103 - Getting issue details... STATUS

CPS-NCMP


CPS-1127 - Getting issue details... STATUS

CPS-NCMP


CPS-1132 - Getting issue details... STATUS

CPS-NCMP


CPS-1174 - Getting issue details... STATUS

CPS-NCMP


CPS-1183 - Getting issue details... STATUS

CPS-NCMP
Investigation on the use of Liquibase to install NCMP artifacts

CPS-1139 - Getting issue details... STATUS

CPS-NCMP


CPS-1301 - Getting issue details... STATUS

CPS7 (performance)Add prefix for containers in different Modules in a PERFORMANT way

CPS-1348 - Getting issue details... STATUS

CPS4

Functionalities

User Stories

 Open User Stories REQ-1410 (CPS Enhancements)

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

 Improvements & Technical Debt (any release)

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

 Closed Stories

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 to able to 'detect' and sync xNF in the network
    • Fine-cache cache control will determine what get cache for what xNF
  • NCMP will support the query capabilities as CPS-Core and be extend with options similar to RESTConf's 'fields' and 'depth'

Release Deliverables

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

Deliverable NameDeliverable Description

onap/cps-and-ncmp

Container running CPS and NCMP
onap/cps-temporalContainer running CPS Temporal
onap/ncmp-dmi-pluginContainer running OMAP DMI Plugin
docs.onap.org/projects/onap-cps

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

docs.onap.org/projects/onap-cps-ncmp-dmi-pluginONAP DMI-Plugin Documentation for R12 (incl. offered APIs and release note)
docs.onap.org/projects/onap-cps-cps-temporalCPS-Temporal Documentation for R12 (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: London Release Platform Maturity


  • API Incoming Dependencies

No Incoming API changes required

  • API Outgoing Dependencies

API this project is delivering to other projects.

API NameAPI DescriptionAPI Definition DateAPI Delivery dateAPI 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-04Change notifications


CPS-E-05xNF Data Access

Swagger Sources (openapi.yaml)
CPS-E-06Temporal 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. 

NameDescriptionCPS-Core CPS-NCMPCPS-Temporal 
3PP Version
DockerVM Container18 and above18 and above18 and above
ODL Yang ToolsYang model and Data Parser8.0.68.0.6 N/A 
Postgres Docker imageVM container for Postgres14.1-alpine14.1-alpineN/A
onap/integration-java11Java Base image8.0.08.0.08.0.0
SwaggerOpenAPI library2.1.42.1.4

springdoc-openapi-ui:1.5.9

SpringFoxOpenAPI library3.0.03.0.03.0.0
Hibernate typesSupport for Postgres datatype JSONB2.10.02.10.02.10.0
Spring BootApplication Framework2.6.142.6.142.6.9
Commons-lang33pp3.113.113.12.0
Antlr4-runtimeLanguage parser4.9.24.9.2N/A
LiquibaseDB Schema (version) management4.14.0-nordix4.14.0-nordix4.14.0-nordix
HazelcastDistributed Cache4.2.5N/AN/A



  • Gaps

No gaps Identified

  • Known Defects and Issues

See dynamic Jira filter:

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

  • Risks

Risk identified related to scope-creep, see London Risk Table 

  • Resources

Configuration Persistence Service Developer's Landing Page

Name

Code Contributor

Committer

Organization

Time Zones

CPS Daily Scrums*

Winter

Summer (DST)

Focus Team 1

Focus Team 2

DT Sub Team

Toine Siebelink (PTL)

Yes

Yes

Ericsson

GMT/UTC

IST/UTC+1

X (SM)

kieran mccarthy(stakeholder)

No

No

Ericsson

CET/UTC+1

CEST/UTC+2

Peter Turcsanyi (stakeholder)

No

No

Ericsson

CET/UTC+1

CEST/UTC+2

Csaba Kocsis (stakeholder)

No

No

Ericsson

CET/UTC+1

CEST/UTC+2

Tony Finnerty (architect)

No

No

Ericsson

GMT/UTC

IST/UTC+1

Kolawole Adebisi-Adeolokun(PO)

No

No

Ericsson

GMT/UTC

IST/UTC+1

Arpit Singh 

Yes

No

Tech Mahindra

IST/UTC+5:30

IST/UTC+5:30

X

Daniel Hanrahan

Yes

Yes

Ericsson

GMT/UTC

IST/UTC+1

X

Gerard Nugent 

Yes

No

Ericsson

GMT/UTC

IST/UTC+1

X

Halil Cakal 

Yes

No

Ericsson

GMT/UTC

IST/UTC+1

X

Lee Anjella Macabuhay

Yes

Yes

Ericsson

GMT/UTC

IST/UTC+1

X (SM)

Levente Csanyi 

Yes

No

Ericsson

CET/UTC+1

CEST/UTC+2

X

Priyank Maheshwari 

Yes

Yes

Ericsson

GMT/UTC

IST/UTC+1

X

X (SM)

Rajesh Kumar 

Yes

No

Tech Mahindra

IST/UTC+5:30

IST/UTC+5:30

X

Rudrangi Anupriya 

Yes

No

Tech Mahindra

IST/UTC+5:30

IST/UTC+5:30

X

Seán Beirne 

Yes

No

Ericsson

GMT/UTC

IST/UTC+1

X

Sourabh Sourabh 

Yes

Yes

Ericsson

GMT/UTC

IST/UTC+1

X

*The scrum attendance for each member is the current 'typical' attendance. Each team member can potentially attend any Scrum as needed

  • Release Milestone

The milestones are defined at the Release Planning and all the supporting project agreed to comply with these dates.

  • Team Internal Milestone

This section is optional and may be used to document internal milestones within a project team or multiple project teams. For instance, in the case the team has made agreement with other team to deliver some artifacts on a certain date that are not in the release milestone, it is recommended to provide these agreements and dates in this section.

  • Documentation, Training

See the following centralized wiki: London Documentation

Other Information

  • Vendor Neutral

If this project is coming from an existing proprietary codebase, ensure that all proprietary trademarks, logos, product names, etc. have been removed. All ONAP deliverables must comply with this rule and be agnostic of any proprietary symbols.

  • Free and Open Source Software

FOSS activities are critical to the delivery of the whole ONAP initiative. The information may not be fully available at Release Planning, however to avoid late refactoring, it is critical to accomplish this task as early as possible.
List all third party Free and Open Source Software used within the release and provide License type (BSD, MIT, Apache, GNU GPL,... ).
In the case non Apache License are found inform immediately the TSC and the Release Manager and document your reasoning on why you believe we can use a non Apache version 2 license.

Each project must edit its project table available at Project FOSS.


Charter Compliance

The project team comply with the ONAP Charter.