Policy R3 Casablanca M1 Release Planning Template

The content of this template is expected to be fill out for M1 Release Planning Milestone.


Overview

Project Name

Enter the name of the project

Project Name

Enter the name of the project

Target Release Name

Casablanca

Project Lifecycle State

Incubation

Participating Company 

AT&T, Ericsson, Amdocs, Intel, TechMahindra

Scope

What is this release trying to address?

  • Maintenance of current Platform MVP components (Highest Priority)

    • 50% code coverage (Java and Javascript)

    • Reliability of S3P functionality

    • Security Enhancements to further progress towards Silver badge

      • internal communication encrypted

      • role-based access control and authorization for all calls

    • Logging spec v1.2 requirements

  • Auto Scale Out Use Case (High Priority)

    • Implement new SO API call for Scale Out

    • Support Guard Policies creation by CLAMP (Stretch Goal - not enough resources)

    • Implement min/max of instances check similar to VID (Stretch Goal - not enough resources and/or information to fully commit) 

    • Implement Prov_Status=PROV check (Stretch Goal - not enough resources and/or information to fully commit)

  • HPA Functional Requirement (Medium Priority)

    • Creation of Application that integrates with SDC Service Distribution

      • Must support current API and have hooks to support future Policy Lifecycle API

      • Health Check, CSIT, Dockerized, K8S HELM Chart, S3P, 70% code coverage

    • Code implementation for automatic creation of HPA Placement policies located in VNF descriptor for OOF to perform placement (Dependent upon creation of Policy SDC Service Distribution application)

      • Include CSIT test

  • Re-architecture of the Platform components for long term roadmap (Low Priority)

    • Ingest of Apex PDP engine

      • Health Check, CSIT, Dockerized, HELM Chart, S3P, 70% code coverage

    • PAP 2nd Generation

      • Re-build of PAP ↔ PDP Policy Distribution API using Maven Nexus Repo.

      • Re-build of PAP ↔ PDP Grouping

      • Above 2 requirements will involve creation of PDP SDK (2nd Generation)

      • Policy Lifecycle API

      • Health Check, CSIT, Dockerized, HELM Chart, S3P, 70% code coverage

    • XACML PDP 2nd Generation

      • Configurability of XACML Combining Algorithms for root engine

      • Open support for raw XACML policies

      • Integration with PDP SDK (2nd Generation)

    • Policy Engineer Development Environment

      • Documentation

Use Cases

vFW/vDNS/vCPE/VOLTE - Test only support

Minimum Viable Product

  • Policy Portal Dashboard - Console GUI where Models, Templates can be imported, updated, deleted, as well as, policies can be created, updated and deleted. The console GUI also has a dashboard where PDP's can be grouped and where Operators can control where policies are distributed to.

  • Policy PAP web application - Policy backend that manages communication with PDP engines for policy distribution.

  • Policy Drools PDP - run-time execution of Control Loop operational policies. Supports queries from other ONAP components to retrieve

  • Policy XACML PDP - run-time execution of Control Loop configuration policies of DCAE collectors, analytics and micro services.

  • Policy BRMS Gateway - intermediary backend for distributing policies to the Drools PDP and configuration details to the Drools PDP controller.

Functionalities

List the functionalities that this release is committing to deliver by providing a link to JIRA Epics and Stories. In the JIRA Priority field, specify the priority (either High, Medium, Low). The priority will be used in case de-scoping is required. Don't assign High priority to all functionalities.

Epics

key summary epic name priority assignee
Loading...
Refresh

Stories

key summary priority assignee
Loading...
Refresh



Longer term roadmap

Casablanca will begin development of its new architecture as described in this wiki: The ONAP Policy Framework

Release Deliverables

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

Deliverable Name

Deliverable Description

Deliverable Name

Deliverable Description

Policy Portal Dashboard

Executable

Policy PAP web application

Executable



API - internal to the Policy Platform. The Policy PDP engines use this API to synchronize policies being distributed.

Policy Drools PDP

Executable

Policy XACML PDP

Executable



Existing API - external to ONAP components. The API is used to CRUD Policies, Deploy Policies, and query for Policy Decisions.

Policy BRMS Gateway

Executable

MariaDB

SQL database

  • Stores policies and their versions

  • Stores templates/models and their versions

  • Stores PDP grouping information

  • Stores Policy distribution details

Nexus Repo

This repository is used by the Policy Drools PDP to retrieve distributed policies and their dependent jars.

Policy SDC Distribution Integration

Executable - receives SDC Service Distribution notifications and translates VNF/Service policies into runtime policies.

Stretch Goals

The following will only be a deliverable if they are available for community to use. As they are not MVP, they will only be a stretch goal

Policy Lifecycle API (2nd Generation)

Description/Documentation

Policy PAP (2nd Generation)

Executable

Policy PDP SDK (2nd Generation)

Code Deliverable

Policy Apex PDP

Executable

Policy XACML PDP (2nd Generation)

Executable

Sub-Components

List all sub-components part of this release.
Activities related to sub-components must be in sync with the overall release.

Sub-components are repositories and are consolidated in a single centralized place. Edit the Release Components name for your project in the centralized page.

Architecture

High level architecture diagram

At that stage within the Release, the team is expected to provide more Architecture details describing how the functional modules are interacting.

Indicate where your project fit within the ONAP Archiecture diagram.

Block and sequence diagrams showing relation within the project as well as relation with external components are expected.

Anyone reading this section should have a good understanding of all the interacting modules.

Platform Maturity

Refering to CII Badging Security Program and Platform Maturity Requirements, fill out the table below by indicating the actual level , the targeted level for the current release and the evidences on how you plan to achieve the targeted level.

Area

Actual Level

Targeted Level for current Release

How, Evidences

Comments

Area

Actual Level

Targeted Level for current Release

How, Evidences

Comments

Performance

1

1

Policy R3 Casablanca Platform Maturity

  • 0 -- none

  • 1 – baseline performance criteria identified and measured

  • 2 & 3 – performance improvement plans created & implemented

Stability

1

1

Policy R3 Casablanca Platform Maturity

  • 0 – none

  • 1 – 72 hours component level soak w/random transactions

  • 2 – 72 hours platform level soak w/random transactions

  • 3 – 6 months track record of reduced defect rate

Resiliency

2

2

Policy R3 Casablanca Platform Maturity

  • 0 – none

  • 1 – manual failure and recovery (< 30 minutes)

  • 2 – automated detection and recovery (single site)

  • 3 – automated detection and recovery (geo redundancy)

Security

1

2 (Stretch goal)

Policy R3 Casablanca Platform Maturity

  • 0 – none

  • 1 – CII Passing badge + 50% Test Coverage

  • 2 – CII Silver badge; internal communication encrypted; role-based access control and authorization for all calls

  • 3 – CII Gold

Scalability

1

1

Policy R3 Casablanca Platform Maturity

  • 0 – no ability to scale

  • 1 – single site horizontal scaling

  • 2 – geographic scaling

  • 3 – scaling across multiple ONAP instances

Manageability

1

1

Policy R3 Casablanca Platform Maturity

  • 1 – single logging system across components; instantiation in < 1 hour

  • 2 – ability to upgrade a single component; tracing across components; externalized configuration management

Usability

1

1

Policy R3 Casablanca Platform Maturity

  • 1 – user guide; deployment documentation; API documentation

  • 2 – UI consistency; usability testing; tutorial documentation



  • API Incoming Dependencies

List the API this project is expecting from other projects.
Prior to Release Planning review, Team Leads must agreed on the date by which the API will be fully defined. The API Delivery date must not be later than the release API Freeze date.

Prior to the delivery date, it is a good practice to organize an API review with the API consumers.

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)

new SO API

SO will be designing an API for Scale Out that can be shared by Policy and VID using Dmaap

M3

M3 time



AAI

REST Web Service for AAI

Beijing





Control Loop Event Messages

Dmaap messages published by DCAE when a Control Loop Event occurs.

Beijing

n/a

n/a

APP-C

Dmaap message LCM API for Restart and ModifyConfig

Beijing





SO

API for auto scaling (for backwards compatibility until Common Actor API is established)

Beijing





DMAAP

API for publish/subscribe to DCAE Control Loop Events and APP-C API

Beijing





  • 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)

Policy Client API

This API is used by other ONAP components to create, update and delete policy(s).

Beijing version - no changes

n/a

Policy API

Policy Query API

This API is used by other ONAP components responsible for enforcing policy during runtime.

Beijing version - no changes

n/a

Policy API

Policy Lifecycle API

The new Policy Lifecycle API description, documentation, models, etc.

API will be designed and documented over the course of Casablanca. We do not expect our clients to be able to utilize this API in Casablanca.

End of Casablanca

TBD

  • Third Party Products Dependencies

Third Party Products mean products that are mandatory to provide services for your components. Development of new functionality in third party product may or not be expected.
List the Third Party Products (OpenStack, ODL, RabbitMQ, ElasticSearch,Crystal Reports, ...).

Name

Description

Version

Name

Description

Version

MariaDB

The MariaDB is the repository that holds all the policies, templates, PDP group, and deployment information.

10.2.14

Nexus

The Nexus repository holds all the currently deployed Operational (i.e. Drools policies) and their dependent artifacts.

2.14.8-01

Ubuntu

Operating system

14.04

In case there are specific dependencies  (Centos 7 vs Ubuntu 16. Etc.) list them as well.

  • TESTING AND INTEGRATION PLANS

Provide a description of the testing activities (unit test, functional test, automation,...) that will be performed by the team within the scope of this release.

Describe the plan to integrate and test the release deliverables within the overall ONAP system.
Confirm that resources have been allocated to perform such activities.

  • GAPS

This section is used to document a limitation on a functionality or platform support. We are currently aware of this limitation and it will be delivered in a future Release.
List identified release gaps (if any), and its impact.

Gaps identified

Impact

Gaps identified

Impact

Policies that are specific to drools are routed through the PDP-X via BRMSGW.

This is unsustainable long-term as we move to a distributed PDP micro service architecture and need to utilize a Policy Distribution API to groups of PDP's spread out over the installation of ONAP.


BRMSGW hard codes dependencies for policies that are specific to drools.

The long term architecture view is for policy artifacts to be located in a nexus repository that are pulled by appropriate PDP micro service engines. Dependencies would be set in the policy artifact jar files themselves and not hard coded into the platform as a JSON file. Having a JSON file to specify dependencies is a poor implementation architecture and there is no need to re-create Policy artifacts.

Policy template/model/rule development environment is too tightly integrated with the Platform code and is not sustainable in the long term.

The long term vision is for separate of Platform from Policies and the current architecture is too far off in its development to move to this goal.

New policy models require too much development effort for integration with the Policy GUI.

The long term goal was a platform that could ingest policy models organically and not require any development work. The Policy GUI should be to interpret any TOSCA Model ingested and flexibly present a GUI for a user to create policies from.

Policy API is not RESTful and acts more like database query rather than request for a Policy Decision. API also hardcodes models of policies.

The long term goal for the architecture which is to be able to create domains for policies and be flexible import models for those domains without any development to the platform.

Policy API does not support Lifecycle management for policies that are deployed such as modes and retirement.

This additional requirement is better suited for the new proposed Policy Lifecycle API than the current API.

  • KNOWN DEFECTS AND ISSUES

Provide a link toward the list of all known project bugs.

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

  • RISKS

List the risks identified for this release along with the plan to prevent the risk to occur (mitigation) and the plan of action in the case the risk would materialized (contingency).

Risk identified

Mitigation Plan

Contingency Plan

Risk identified

Mitigation Plan

Contingency Plan

Not enough resources to meet all the functional requirements.

All Epics are assessed a priority.



Need the SO API defined by a reasonable timeframe for implementation to happen

We will use the current SO RESTful API until the new API is in place.



  • RESOURCES

Fill out the Resources Committed to the Release centralized page.

  • RELEASE MILESTONE

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

  • TEAM INTERNAL MILESTONE

This section is optional.



  • DOCUMENTATION, TRAINING

http://onap.readthedocs.io/en/beijing/submodules/policy/engine.git/docs/index.html



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.