DRAFT PROPOSAL FOR COMMENTS
The content of this template is expected to be fill out for M1 Release Planning Milestone.
...
Project Name | Policy Framework |
---|---|
Target Release Name | Beijing |
Project Lifecycle State | Incubation |
Participating Company | AT&T, Intel, Ericsson, Huawei |
Scope
What is this release trying to address?
...
A best effort will be applied to support Integration testing for the existing R1 Use Cases assuming there are NO changes made to those Use Cases.
Hardware Platform Enablement In ONAP - Dependency will be on Intel to supply the required resources. A best effort will be applied to support Intel resources in lieu of Platform Maturity Guidelines and JUnit Test Code Coverage 50%.
VNF Scale Out (TBD - Not enough resources as of 1/11/2018, will finalize by 1/16/2018)vDNS only - requirements planning) - We will do as much work as possible prior to Cassablanca for supporting the auto scale out use case. Dependent on the amount of requirements planning the APP-C team can do.
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.
...
- Integration with SDC to support future Policy Design GUI integration into SDC
- We are waiting or SDC to produce their SDK for integration at the end of Beijing
- Policy Lifecycle API
- Not enough resources or time to fully implement this and make it available to other Components. We expect to have at the very least appropriate documentation, models, and swagger yaml files.
- Distribution of PDPs across the network - in lieu of support future performance requirements for Control Loops (Eg. a Control Loop must address an issue within X milliseconds of detection in an automated fashion)
- PDP distribution needs to be enhanced to support multiple PDP's being located in edge, core, global datacenters. (i.e geo-distribution)
- This should also support high availability and resiliency within each datacenter
- PDP's designed as Microservices and deployed via OOM registering with MSB
Release Deliverables
Indicate the outcome (Executable, Source Code, Library, API description, Tool, Documentation, Release Note...) of this release.
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 |
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
|
Nexus Repo | This repository is used by the Policy Drools PDP to retrieve distributed policies and their dependent jars. |
Policy Lifecycle API | Description/Documentation |
Policy SDC Distribution Integration | Executable |
Sub-Components
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.
...
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.
View file name ONAP Beijing Architecture Jan 9c - Policy.pdf height 400
Policy Interaction with CLAMP during Design Time
Policy Interaction with OOF
Platform Maturity
...
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) |
---|---|---|---|---|
Policy Client API | This API is used by other ONAP components to create, update and delete policy(s). | Amsterdam version - no changes | Policy API | |
Policy Query API | This API is used by other ONAP components responsible for enforcing policy during runtime. | Amsterdam version - no changes | Policy API | |
Policy Lifecycle API | The new Policy Lifecycle API description, documentation, models, etc. | M3 API Freeze. We do not expect our clients to be able to utilize this API in Beijing. | M3 | TBD |
Third Party Products Dependencies
...
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.
...
- JUnit tests: 50% code coverage is the goal for all repositories.
- Functional tests: cover all possible Control Loop API calls. Simulating CLAMP and DCAE API calls
- If resources become available, we will add more API calls such as delete, update.
- Policy R2 Beijing CSIT Functional Test Cases
- Integration Test Plans - In progress: Policy R2 Beijing - Integration Test Plans
"Confirm that resources have been allocated to perform such activities" - at this point I do not have enough resources to cover both making the changes for Platform Maturity and help with testing.
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 | |
---|---|---|
To fill out | To fill outTemplate Code is inefficient with respect to threading | Drools is single-threaded. When a RESTful API call is made, it should be done in a thread vs polling. Else it holds up the processing of events/rules. The RESTful API calls to A&AI, SO and VF-C should be done in a separate thread. |
Policy GUI limitations | Unable to update templates This visual update of Control Loop Operational Policies is not user-friendly Not a truly model-driven architecture. Code must be written in order to support new models. |
Known Defects and Issues
Provide a link toward the list of all known project bugs.
Jira Legacy | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
...
Risk identified | Mitigation Plan | Contingency Plan |
---|---|---|
Resources | Actively seeking community support. | Current resources are only enough to satisfy the Highest Priority Epics (Platform Maturity, JUnit 50% test coverage). But that will be difficult to achieve. |
policy/engine - Difficult to obtain 50% JUnit code coverage based on the extreme amount of cyclomatic complexity and code refactoring needed to remove nested statements. | Deprecation of the repository is possible with re-write of components that is needed to support Platform Maturity requirements. | Request TSC for exception for that specific repository. |
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.
...