/
OOF Cloud Agnostic Policies

OOF Cloud Agnostic Policies

Functional Requirement Link: Edge Scoping MVP for Casablanca - ONAP Enhancements#ONAPEnhancements-Cloud-agnosticPlacement/Networking&HomingPolicies(Phase1-CasablancaMVP,Phase2-StretchGoal)

Cloud Agnostic Intent Examples
# #Example 1: vCPE, Burstable QoS #vCPE: Infrastructure Resource Isolation for VNF with Burstable QoS # { "service": "cloudDeploymentPolicy", "policyName": "OSDF_R3.cloud_deployment_policy_vG_1", "description": "Cloud Deployment policy for vG", "templateVersion": "OpenSource.version.1", "version": "test1", "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", "content": { "resources": "vG", "identity": "cloudDeploymentPolicy_vG", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vG"], "policyType": "cloudDeploymentPolicy", "cloudDeploymentIntentList": [ { "Cloud Type (Cloud Provider)": "VMware VIO", "intentProperties":[ { "deploymentIntent" : "Infrastructure Resource Isolation for VNF", "intent-attributes": [ {"intent-attribute-key":"Infrastructure Resource Isolation for VNF", "intent-attribute-value": "Burstable QoS","operator": "=", "unit": ""}, {"intent-attribute-key":"Burstable QoS Oversubscription Percentage", "intent-attribute-value": "25","operator": "=", "unit": ""}, ] }, ] }, ] } } # #Example 2: #vCPE: Infrastructure Resource Isolation for VNF with Guaranteed QoS # { "service": "cloudDeploymentPolicy", "policyName": "OSDF_R3.cloud_deployment_policy_vG_1", "description": "Cloud Deployment policy for vG", "templateVersion": "OpenSource.version.1", "version": "test1", "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", "content": { "resources": "vG", "identity": "cloudDeploymentPolicy_vG", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vG"], "policyType": "cloudDeploymentPolicy", "cloudDeploymentIntentList": [ { "intentProperties":[ { "deploymentIntent" : "Infrastructure Resource Isolation for VNF", "intent-attributes": [ {"intent-attribute-key":"Infrastructure Resource Isolation for VNF", "intent-attribute-value": "Guaranteed QoS","operator": "=", "unit": ""}, ] }, ] }, ] } } # #Example 3: vDNS, Burstable QoS #vDNS: Infrastructure Resource Isolation for VNF with Burstable QoS # { "service": "cloudDeploymentPolicy", "policyName": "OSDF_R3.cloud_deployment_policy_vDNS_1", "description": "Cloud Deployment policy for vDNS", "templateVersion": "OpenSource.version.1", "version": "test1", "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", "content": { "resources": "vDNS", "identity": "cloudDeploymentPolicy_vDNS", "policyScope": ["vDNS", "US", "INTERNATIONAL", "ip", "vDNS"], "policyType": "cloudDeploymentPolicy", "cloudDeploymentIntentList": [ { "Cloud Type (Cloud Provider)": "VMware VIO", "intentProperties":[ { "deploymentIntent" : "Infrastructure Resource Isolation for VNF", "intent-attributes": [ {"intent-attribute-key":"Infrastructure Resource Isolation for VNF", "intent-attribute-value": "Burstable QoS","operator": "=", "unit": ""}, {"intent-attribute-key":"Burstable QoS Oversubscription Percentage", "intent-attribute-value": "25","operator": "=", "unit": ""}, ] }, { "deploymentIntent" : "Infrastructure High Availability for VNF", }, ] }, ] } } # #Example 4: #vDNS: Infrastructure Resource Isolation for VNF with Guaranteed QoS # { "service": "cloudDeploymentPolicy", "policyName": "OSDF_R3.cloud_deployment_policy_vDNS_1", "description": "Cloud Deployment policy for vDNS", "templateVersion": "OpenSource.version.1", "version": "test1", "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", "content": { "resources": "vDNS", "identity": "cloudDeploymentPolicy_vG", "policyScope": ["vDNS", "US", "INTERNATIONAL", "ip", "vDNS"], //vDNS VNF has 3 VNFCs - vDNS, vLB and vPacketgen "policyType": "cloudDeploymentPolicy", "cloudDeploymentIntentList": [ { "intentProperties":[ { "deploymentIntent" : "Infrastructure Resource Isolation for VNF", "intent-attributes": [ {"intent-attribute-key":"Infrastructure Resource Isolation for VNF", "intent-attribute-value": "Guaranteed QoS","operator": "=", "unit": ""}, ] }, { "deploymentIntent" : "Infrastructure High Availability for VNF", }, ] }, ] } }

#
#Spec Reference: https://lf-onap.atlassian.net/wiki/display/DW/Edge+Scoping+MVP+for+Casablanca+-+ONAP+Enhancements#EdgeScopingMVPforCasablanca-ONAPEnhancements-Cloud-agnosticPlacement/Networking&HomingPolicies(Phase1-CasablancaMVP,Phase2-StretchGoal)
#
 
from jsonschema import validate
 
oof_cloud_selection_policy_schema = {
        "service": {"type""string"},
        "policyName": {"type""string"},
        "policyDescription": {"type""string"},
        "templateVersion": {"type""string"},
        "version": {"type""string"},
        "priority": {"type""string"},
        "riskType": {"type""string"},
        "riskLevel": {"type""string"},
        "guard": {"type""string"},
 
        "content": {
                "type""object",
                "required": ["cloud-deployment-intent"],
                "properties" : {
 
                        # VNFC is not used in the OOF->MC path for R3
                        # This is kept to be consistent with the SO-> MC path
                        # As an example, vDNS VNF in ONAP has 3 VNFCs - DNS, Packet Gen & Load Balancer --
                        # Each of the VNFCs could have different policies                                                                                                      
                        "vnfc": {"type""string"},
 
                        # cloud-specific realization of the specified deployment intent
                        # happens in  multi-cloud in the cloud-specific plugin
                        "cloud-deployment-intent": {
                                "type""object",
                                "properties" : {
 
                                        # Cloud Type -- Azure, K8S, OpenStack, VMware VIO, Wind River Titanium
                                        # Optionally Accomodate policies per Cloud Type
                                        "Cloud Type (Cloud Provider)": {"type""array"},
                                         
                                        "Infrastructure High Availability for VNF": {"type""boolean"},
 
                                        "Infrastructure Resource Isolation for VNF": {"type""string"},
 
                                        # Infrastructure Resource Isolation for VNF
                                        # Only certain pre-defined over-subscription values are allowed to
                                        # reflect practical deployment and simplify implementation for R3
                                        "Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage": {"type""int"},
                                },
                        },
                },
        },
 
        "resources": {"type""array"}, #"vgw" is also interchangeably used as "vg"
        "applicableResources": {"type""string"},
        "identity": {"type""string"},
        "policyScope": {"type""array"},
        "policyType": {"type""string"}
}
 
#
#Example 1: vCPE, Burstable QoS
#vCPE: Infrastructure Resource Isolation for VNF with Burstable QoS
#
oof_cloud_selection_policy_instance1 = {
        "service""cloudSelectionPolicy",
        "policyName""oofMulti-cloudCasablanca.cloudSelectionPolicy_vCPE_VNF",
        "policyDescription""Cloud Selection Policy for vCPE VNFs",
        "templateVersion""0.0.1",
        "version""oofMulti-cloudCasablanca",
        "priority""3",
        "riskType""test",
        "riskLevel""2",
        "guard""False",
 
        "content": {
                "vnfc""vgw",
                "cloud-deployment-intent": {
                        "Cloud Type (Cloud Provider)": {"VMware VIO"},
                        "Infrastructure Resource Isolation for VNF""Burstable QoS",
                        "Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage"25,
                },
        },
 
        "resources": ["vgw"], #"vgw" is also interchangeably used as "vg"
        "applicableResources""any",
        "identity""cloud-atrributes",
        "policyScope": ["vCPE""US""INTERNATIONAL""ip""vgw""vgmux"],
        "policyType""AllPolicy"
}
 
#
#Example 2:
#vCPE: Infrastructure Resource Isolation for VNF with Guaranteed QoS
#
oof_cloud_selection_policy_instance2 = {
        "service""cloudSelectionPolicy",
        "policyName""oofMulti-cloudCasablanca.cloudSelectionPolicy_vCPE_VNF",
        "policyDescription""Cloud Selection Policy for vCPE VNFs",
        "templateVersion""0.0.1",
        "version""oofMulti-cloudCasablanca",
        "priority""3",
        "riskType""test",
        "riskLevel""2",
        "guard""False",
 
        "content": {
                "vnfc""vgw",
                "cloud-deployment-intent": {
                        "Infrastructure Resource Isolation for VNF""Guaranteed QoS",
                },
        },
 
        "resources": ["vgw"], #"vgw" is also interchangeably used as "vg"
        "applicableResources""any",
        "identity""cloud-atrributes",
        "policyScope": ["vCPE""US""INTERNATIONAL""ip""vgw""vgmux"],
        "policyType""AllPolicy"
}
 
#
#Example 3:
#vDNS: Infrastructure HA for VNF & Infrastructure Resource Isolation for VNF with Burstable QoS
#
oof_cloud_selection_policy_instance3 = {
        "service""cloudSelectionPolicy",
        "policyName""oofMulti-cloudCasablanca.cloudSelectionPolicy_vDNS_VNF",
        "policyDescription""Cloud Selection Policy for vDNS VNFs",
        "templateVersion""0.0.1",
        "version""oofMulti-cloudCasablanca",
        "priority""3",
        "riskType""test",
        "riskLevel""2",
        "guard""False",
 
        "content": {
                "vnfc""vdns",
                "cloud-deployment-intent": {
                        "Cloud Type (Cloud Provider)": {"VMware VIO""Azure"},
                        "Infrastructure High Availability for VNF"True,
                        "Infrastructure Resource Isolation for VNF""Burstable QoS",
                        "Infrastructure Resource Isolation for VNF - Burstable QoS Oversubscription Percentage"25,
                },
        },
 
        "resources": ["vDNS"],
        "applicableResources""any",
        "identity""cloud-atrributes",
        "policyScope": ["vDNS""US""INTERNATIONAL""vDNS"],
        "policyType""AllPolicy"
}
 
#
# Example 4:
# vDNS: Infrastructure HA for VNF & Infrastructure Resource Isolation for VNF
# with Guaranteed QoS
#
oof_cloud_selection_policy_instance4 = {
        "service""cloudSelectionPolicy",
        "policyName""oofMulti-cloudCasablanca.cloudSelectionPolicy_vDNS_VNF",
        "policyDescription""Cloud Selection Policy for vDNS VNFs",
        "templateVersion""0.0.1",
        "version""oofMulti-cloudCasablanca",
        "priority""3",
        "riskType""test",
        "riskLevel""2",
        "guard""False",
 
        "content": {
                "vnfc""vdns",
                "cloud-deployment-intent": {
                        "Infrastructure High Availability for VNF"True,
                        "Infrastructure Resource Isolation for VNF""Guaranteed QoS",
                },
        },
 
        "resources": ["vDNS"],
        "applicableResources""any",
        "identity""cloud-atrributes",
        "policyScope": ["vDNS""US""INTERNATIONAL""vDNS"],
        "policyType""AllPolicy"
}
 
validate(oof_cloud_selection_policy_instance1, oof_cloud_selection_policy_schema)
validate(oof_cloud_selection_policy_instance2, oof_cloud_selection_policy_schema)
validate(oof_cloud_selection_policy_instance3, oof_cloud_selection_policy_schema)
validate(oof_cloud_selection_policy_instance4, oof_cloud_selection_policy_schema)

Related content

Edge Scoping MVP for Casablanca - ONAP Enhancements
Edge Scoping MVP for Casablanca - ONAP Enhancements
More like this
vCPE Use Case + OOF + HPA Tutorial: Design and Deploy based on ONAP
vCPE Use Case + OOF + HPA Tutorial: Design and Deploy based on ONAP
More like this
Homing in VNF Scale Out
Homing in VNF Scale Out
More like this
OOF Casablanca (R3) Architecture Alignment
OOF Casablanca (R3) Architecture Alignment
More like this
ARC Multi-Cloud Component Description - Honolulu-R8
ARC Multi-Cloud Component Description - Honolulu-R8
More like this
vCPE use case testing
vCPE use case testing
More like this