2020-04-23 LF Virtual Technical Event - Policy Framework Overview

1:00pm UTC/ 9:00am EST/8:00am CST/2:30pm IST

Overview

Note that as of this date, our documentation is still being worked on. The link for it is: https://docs.onap.org/en/latest/submodules/policy/parent.git/docs/index.html.  At some point in April/May of 2020 we will be branching so be sure to refer to the Frankfurt branch of documentation if you are viewing this wiki page at that time.

Frankfurt Release Key Updates

 

Key New Feature

SME

Details

Readthedocs/JIRA etc.

Key New Feature

SME

Details

Readthedocs/JIRA etc.

Re-design of Control Loop Actor/Operation Code

@James Hahn

Control Loop actor code was re-designed and cleaned up enabled faster integration of new actors and operations for control loops.

Drools Rules Simplification.

POLICY-1930: This epic covers the work to re-design the code for control loops.Closed

 

Policy Update notifications

@James Hahn

When versions of policies are deployed/undeployed, an update notification is sent on Dmaap topic so that clients (DCAE in particular) can make Decision API call to get the latest policy that they should be enforcing.

https://docs.onap.org/en/latest/submodules/policy/parent.git/docs/pap/pap.html#dmaap-api

POLICY-1840: This epic covers the work to develop update notifications when deployment of policies to PDPs change.Closed

PAP Component Enhancements

@Ram Krishna Verma

@James Hahn

  • Treatment of PASSIVE state for PDPs: If a PDP fails to deploy one or more policies specified in a PDP-UPDATE message, PAP will undeploy those policies that failed to deploy to the PDP.  This entails removing the policies from the Pdp Group(s), issuing new PDP-UPDATE requests, and updating the notification tracking data.

  • Removal of supportedPolicyTypes in PdpStatus message from pdp's for either registration or regular heartbeat. Now pdp's will send the name of the pdpGroup they want to register in the PdpStatus message for registration.

POLICY-2026: This epic covers the work to support backlog for PAP and PDP communication.Closed

New PAP API for Create and Update PDP Groups

@Ram Krishna Verma

@James Hahn

  • A new API is introduced to deploy policies on specific PDPGroups

  • Fetch policy deployment status: Clients will be able to poll the PAP API to find out when policies have been successfully or unsuccessfully deployed to the PDP's.

POLICY-2026: This epic covers the work to support backlog for PAP and PDP communication.Closed

https://docs.onap.org/en/latest/submodules/policy/parent.git/docs/pap/pap.html#DeploymentsUpdate

Consolidation of Healthcheck and statistics

@Ram Krishna Verma

Consolidated the health check of all the components into the PAP. Previously each component had to be queried for health status, now a single call to the PAP can retrieve the health of all the components. NOTE: This does not include legacy components.

  • Statistics for XACML and Apex PDP components enhanced.

POLICY-2025: This epic covers the work to ensure all the PDP's report statistics and that both the statistics and health checks are consolidated by the PAP.Closed

Document: WIP

Policy Distribution now uses Lifecycle API and PAP Deployment API

@Ram Krishna Verma

Policy Distribution now uses the Lifecycle API and PAP deployment API to auto create and deploy policies upon service distribution. The legacy API's support were removed.

POLICY-2067: This epic covers the work to upgrade optimization policy types.Closed

https://docs.onap.org/en/latest/submodules/policy/parent.git/docs/distribution/Distribution-User-Manual.html

CDS as an Actor in Control Loops

@Former user (Deleted)

@Ram Krishna Verma

CDS as an actor in Control Loops is now fully supported. Introduced in Dublin, the new actor is now available to be used in Operational policies.

POLICY-2087: This epic captures the work to integrate CDS as an actor in the Policy FrameworkClosed

https://docs.onap.org/en/latest/submodules/policy/parent.git/docs/development/actors/cds/cds.html

Policy Validation, Versioning and Retrieval improvements

@Liam Fallon

  • Improvements in validation of Policy Types and Policies

  • Fixes for Policy Versioning

  • When retrieving a Policy Type, inherited policy types are now included in the API call along with referenced Data Types.

POLICY-2027: This epic covers the work to support self serve control loops.Closed

TOSCA Compliant Policy Types & Upgrading OOF/SDNC to new API

@Pamela Dragosh

In Frankfurt, the policy framework finished its support of TOSCA Compliant Policy Types. New Policy Types were implemented to support these domains:

  • Control Loop Operations

  • Control Loop Guard Queries

  • OOF Project Optimization placement

  • SDNC Naming Algorithms

POLICY-2118: This epic covers the work to design and support TOSCA Compliant Policy Types for the operational and guard policy models.Closed

https://docs.onap.org/en/latest/submodules/policy/parent.git/docs/design/design.html

NOTE: documentation is still WIP

Configurable Policy Type and Policy Pre-Loading

@Pamela Dragosh

Configurable Pre-loading and pre-deployment of policies. When ONAP is brought up, the user can configure a set of default policies that can be created and deployed.

POLICY-2028: This epic covers the backlog for api functionality.Closed

Lifecycle API Enhancements

@Pamela Dragosh

  • Added a new simplified API to create one or more policies in a single API call.

POLICY-2028: This epic covers the backlog for api functionality.Closed

XACML PDP Features

@Pamela Dragosh

  • Decision API for monitoring policies was enhanced to support an abbreviated list of policies.

  • Decision API now supports naming policies for CCSDK project.

  • Decision API now supports a closest match algorithm for optimization policies and enhancements were made to better support policies with "matchable" properties.

  • Support for PASSIVE Mode

  • Now returns error when a policy cannot be loaded

POLICY-2067: This epic covers the work to upgrade optimization policy types.Closed

Native Policy Types

@Pamela Dragosh

Introduction to Native Policy Support for each PDP was implemented. Now users can use the APIs to create policies specific to a PDP such as Drools Rules, XACML XML policies and Apex policies.

  • Drools Native DRL

  • XACML Native XML

  • Apex Native Javascript

POLICY-1845: This epic covers the work to integrate native PDP policy supportClosed

Documentation is WIP for each PDP to document its native policy type and implementation.

Drools PDP Features

@Jorge Hernandez

  • TOSCA Compliant Operational Policies

  • TOSCA Compliant Native Policies (For deployment of new applications).

  • Validation of Operational and Native Policies against their policy type.

  • Generic Drools-PDP docker image that can be used for any generic application.

  • Support for offline mode which allows deployment in a locked environment.

  • Parameterize mvn repo urls which allows the users to build their docker images for drools-pdp and drools-application using their own CI pipelines.

  • Rate limiting of ONSET events to prevent flooding from identical events from DCAE.

POLICY-2191: Usecases controller does not work in offline labClosedPOLICY-2318: Parameterize base-image version for drools-applicationClosedhttps://lf-onap.atlassian.net/browse/POLICY-2181https://lf-onap.atlassian.net/browse/POLICY-2323https://lf-onap.atlassian.net/browse/POLICY-2146

Documentation is WIP.

Apex PDP Features

@Ajith Sreekumar

  • Multiple Policy Deployment now supported

  • Added support for interaction with CDS over gRPC

  • Apex now sends the Statistics data in every heartbeat sent to PAP

  • Passing parameters from ApexConfig to policy logic.

  • Changed JavaScript executor from Nashorn to Rhino as part of Java 11 upgrade.

https://lf-onap.atlassian.net/browse/POLICY-1626https://lf-onap.atlassian.net/browse/POLICY-2324

https://onap.readthedocs.io/en/latest/submodules/policy/parent.git/docs/apex/APEX-User-Manual.html#grpc-io

https://onap.readthedocs.io/en/latest/submodules/policy/parent.git/docs/apex/APEX-User-Manual.html#configure-task-parameters

 

Experimental Features

  • @Ram Krishna Verma New PDP Monitoring GUI is available for experimental use to view PDP groups and the PDPs in those groups. Users can visualize the heartbeat, statistics, and health of the PDPs in each group. https://lf-onap.atlassian.net/browse/POLICY-1751

  • Drools PDP a new server pool implemented was contributed. 

Technical Debt

Maintenance and Security

  • All components were upgraded to JDK 11

  • Many dependencies were upgraded to clear known security issues and/or to keep up with improvements in 3rd party libraries. For a full listing, see release notes.

  • Hard coded passwords were removed from the components. Now readable from environment variables allowing OOM charts to use secrets for setting passwords.

Demos To Be Scheduled at a Later Date

Control Loop Demo of CDS Actor - @Ram Krishna Verma  and @Former user (Deleted)

Consolidated Health Check - @Ram Krishna Verma

OOF Policy Design and Decision API - @Pamela Dragosh

Drools PDP Enhancements - @Jorge Hernandez

Apex PDP Enhancements - @Ajith Sreekumar