Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Page Status: Updated for Oslo  
Component Status: 
Last Reviewed:
Certified by: Byung-Woo Jun 

1. High Level Component Definition and Architectural Relationships 

Drawio
bordertrue
diagramNamepolicy_r15
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1127
revision3

In the Honolulu release the CLAMP component was successfully integrated into the Policy component as a PoC (see

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-473
) .     CLAMP's functional role to provision Policy has been enhanced to support provisioning of policies outside of the context of a Control Loop and therefore act as a Policy UI. In Istanbul release the CLAMP integration will be officially released
Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-684
, the code is already there and working.

2. API Definitions

2a. Exposed APIs

Interface Name

Definition

Capabilities

Version

Status

Payload Model(s)

API Spec (Swagger)

POE-1

Policy Type Design

Allows applications to create, update, delete, and

query 

query PolicyType

 entities

 entities so that they become available for use in ONAP by applications such as CLAMP.

1.0.0

production

tosca.policies.root

TOSCA

https://docs.onap.org/projects/onap-policy-parent/en/latest/api/api.html#api-swagger

POE-2

Policy Design

Allows applications (such as CLAMP and Integration) to create, update, delete, and

query 

query Policy

 entities

 entities.

1.0.0

production

tosca.policies.root

TOSCA

https://docs.onap.org/projects/onap-policy-parent/en/latest/api/api.html#api-swagger

POE-3

Policy Administration

Support CRUD of PDP groups and subgroups and to support the deployment and life cycles

of  entities

of PolicyImpl

 entities (TOSCA Policy and PolicyTypeImpl

 entities (TOSCA Policy and PolicyTypeImpl entities) on PDP sub groups and PDPs.

1.0.0

production

Embedded

https://docs.onap.org/projects/onap-policy-parent/en/latest/pap/pap.html#pap-rest-api-swagger

POE-4

Data Ingress

Listen on a DMaaP topic. 

production

Messages of interest are described in the policy logic

DMaaP

POE-5

Decision Query

Policy decisions are required by ONAP components to support the policy-driven ONAP architecture. Policy Decisions are implemented using the XACML and Apex PDPs. The calling application (which may be another policy – e.g. invocation of a guard policy from PDP-D) must provide attributes in order for the PDP to return a correct decision.

NA

production

Defined by policy

https://docs.onap.org/projects/onap-policy-parent/en/latest/xacml/decision-api.html

CLPOE-1

Control Loop Lifecycle Management and

Polciy Lifecycle Management

Interface

A user interface (GUI) for:

  • Selecting the control loop flow

  • Entering configuration policy parameters

  • Entering operational policy parameters

  • Managing life cycle of DCAE control flow blueprint 

  • Selecting a Service to associate to a Control Loop to be instantiated

  • CRUD operation on Policy (outside of Control Loop)

NA

Defined by policy

NA

(GUI)

2b. Consumed APIs

Interface Name

Consumed by

Description

API Spec (Swagger)

AAF

Policy Framework

Authentication and authorization

DMaaP

Policy Framework

Policies

Policy framework uses DMaaP for SDC subscriptions and internal communication.

Policies use DMaaP as a transport for contextual information from various sources

CLSDC-1

Policy/CLAMP

  • Notification of CSAR; Retrieval of CSAR

  • To receive the Control Loop Blueprint from SDC

https://docs.onap.org/projects/onap-sdc/en/latest/offeredapis.html

CLDCAE-1

Policy/CLAMP

  • Retrieve DCAE application status

  • Retrieve DCAE µS lists

  • Retrieve DCAE µS description and blueprints

https://docs.onap.org/projects/onap-dcaegen2/en/latest/sections/apis/inventory.html

CLDCAE-2

Policy/CLAMP

Deploy/remove DCAE µS. 

https://docs.onap.org/projects/onap-dcaegen2/en/latest/sections/apis/deployment-handler.html

CLCDS-1

Policy/CLAMP

Get list of operations/actions and corresponding payload for Operational Policy where selected actor is "CDS".

View file
nameCDS EXTERNAL REST API FOR WORKFLOW.docx
pageARC Policy Framework Component Description - Istanbul-R9

height

250

AAI

Policies

Enrich ingress data with topology information

SO

Policies

Trigger orchestration actions (policy driven)

SDNC

APPC

CDS

Policies

Trigger control actions (policy driven)

Other

Policies

Trigger any interface defined in a policy, for example, trouble ticketing

3. Component Description

The ONAP Policy Framework is a comprehensive policy design, deployment, and execution environment. The Policy Framework is the the decision making component in  component in an ONAP system. It allows you to specify, deploy, and execute the governance of the features and functions in your ONAP system, be they closed loop, orchestration, or more traditional open loop use case implementations. The Policy Framework is the component that is the source of truth for all policy decisions

Please see the the TOSCA Policy Primer page  page for an introduction to TOSCA policy concepts. See the Policy Design and API flow page for a description of the component interactions.

TOSCA defines a PolicyType, the definition of a type of policy that can be applied to a service. It  It also defines a Policy, the definition of an instance of a PolicyType. In  In the Policy Framework, we must handle and manage these TOSCA definitions and tie them to real implementations of policies that can run on PDPs.

Each TOSCA TOSCA PolicyType must  must have a corresponding corresponding PolicyTypeImpl in  in the Policy Framework. The TOSCA PolicyType definition  definition can be used to create a TOSCA TOSCA Policydefinition, either directly by the Policy Framework, by CLAMP, or by some other system. Once  Once the Policy artifact  artifact exists, it can be used together with the the PolicyTypeImpl artifact  artifact to create a PolicyImpl artifact artifact. A PolicyImpl artifact  artifact is an executable policy implementation that can run on a PDP.

The TOSCA TOSCA PolicyType artifact  artifact defines the external characteristics of the policy; defining its properties, the types of entities it acts on, and its triggers.  A PolicyTypeImpl artifact  artifact is an XACML, Drools, or APEX implementation of that policy definition. PolicyType and PolicyTypeImpl artifacts  and PolicyTypeImpl artifacts may be preloaded, may be loaded manually, or may be created using the Lifecycle API. Alternatively, PolicyType definitions  definitions may be loaded over the Lifecycle API for preloaded for preloaded PolicyTypeImpl artifacts artifacts. A TOSCA TOSCA PolicyType artifact  artifact can be used by clients (such as CLAMP or CLI tools) to create, parse, serialize, and/or deserialize an actual Policy.

The TOSCA TOSCA Policy artifact  artifact is used internally by the Policy Framework, or is input by CLAMP or other systems. This artifact specifies the values of the properties for the policy and specifies the specific entities the policy acts on. Policy Design uses the TOSCA TOSCA Policy artifact  artifact and the the PolicyTypeImpl artifact  artifact to create an executable executable PolicyImpl artifact artifact

        Internally, Policy has three main functional areas: Policy Development; Policy  Policy Administration; Policy Decision Execution.

Policy Development abstracts persistence and supports the creation of policies/policy types.

...

The Policy/CLAMP functional entity provides the capability to manage runtime control loops.  It provides the capability to

  • Create control loop from DCAE blueprint, those blueprint are either:

    •  sent by SDC to DCAE (inventory) via SDC distribution. 

  • Create configuration policy from the policy-model Tosca, the tosca policy-model are either:

    • sent by SDC via SDC distribution to everyone; or

    • query by CLAMP to Policy. in this case the policy-model is either pre-provisioned in Policy
      or separately provisioned to Policy via the REST API exposed by Policy.

  • Configure DCAE applications of the control loop

  • Associate µService configuration policies to the DCAE application

  • Configure the operations to be taken by the control loop (by creating/updating/deleting operational policies)

  • Deploy/un-deploy control loop flow (blueprints) to DCAE

  • Control loop visualization. 

A more detailed figure and description of the Policy/CLAMP sub-component can be found here:

...

The main new capability introduced in this release is the integration of the CLAMP component under the policy umbrella (see

Jira Legacy
columns
serverSystem Jirakey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-684
).   The software has been moved under the policy/clamp repository (https://git.onap.org/policy/clamp).    The OOM helm charts have also been moved as a sub-component of policy  (https://git.onap.org/oom/tree/kubernetes/policy/components).

The PoC experiments with defining Control Loops fully in Tosca will continue, as well.   This is covered by 

Jira Legacy
serverSystem Jiracolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-478
.

As outlined in the architecture review page (Policy Honolulu-R8 Architecture Review) the only new use case that may be supported as a stretch goal is 5G (

Jira Legacy
columns
serverSystem Jirakey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-429
).   Existing use cases will be supported (no change).

Conformance with ONAP-wide requirements (

Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-441
,
Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-437
,
Jira Legacy
serverSystem Jira
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-398
,
Jira Legacy
serverSystem Jiracolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-396
, and
Jira Legacy
serverSystem Jiracolumnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
serverId4733707d-2057-3a0f-ae5e-4fd8aff50176
keyREQ-439
 (there are some risks, see Honolulu Risks page) are already or will be supported.

Additional enhancements to the Policy components will be introduced in this release that have no external impact.    These include but are not limited to:

  • Stateless PAP (Keep no state in PAP runtime container, so state retrieval would be from database).

  • Interoperability of Native and non-native policies in the Drools PDP. 

  • Healthcheck status improvements as well as statistics reporting.

7. References

  1. Istanbul architecture description https://docs.onap.org/projects/onap-policy-parent/en/latest/architecture/architecture.html

  2. Policy Framework API's - https://docs.onap.org/projects/onap-policy-parent/en/latest/offeredapis.html

  3. Policy/CLAMP:

    1. CLAMP Overview : https://docs.onap.org/projects/onap-policy-clamp/en/latest/index.html#master-index

    2. CLAMP internal interfaces:  https://docs.onap.org/projects/onap-policy-clamp/en/latest/_downloads/d25f20712a4cf2524a1cf13242349743/swagger.pdf 

    3. CLAMP User Guide: https://docs.onap.org/projects/onap-policy-clamp/en/latest/user-guide.html#