...
2a) OOF Processing - the fetched Policy is stored in a local data structure and is available for further use (need OOF code changes).
The "OOF Homing Enhanced Capacity Check & Cloud Selection Policy Example" described below is an exemplary policy.
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
{ "service": "cloudSelectionPolicy", "policyName": "oofMulti-cloudCasablanca.cloudSelectionPolicy_vCPE_VNF", "description": "Cloud Selection Policy for vCPE VNFs", "templateVersion": "0.0.1", "version": "oofMulti-cloudCasablanca", "priority": "3", "riskType": "test", "riskLevel": "2", "guard": "False", "content": { { "cloudOwner": "All", //can be a specific cloud owner such as Azure, VMware VIO, Wind River Titanium Cloud etc. "cloudRegion": "All", //can be a specific cloud region for a cloud owner "capacityCheck": "TRUE", //perform capacity check per <cloud owner, cloud region> "dollarCostEvaluationVM-Type": "TRUE", //evaluate dollar cost per VM type if operator has configured a policy "dollarCostEvaluationVM-FeatureGroup": "TRUE" //evaluate dollar per feature/group of features if operator has configured a policy }, } "resources": ["vgw", "vgmux"], //"vgw" is also interchangeably used as "vg" "applicableResources": "any", "identity": "cloud-atrributes", "policyScope": ["vCPE", "US", "INTERNATIONAL", "ip", "vgw", "vgmux"], "policyType": "AllPolicy" } |
...
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
//flexibility of having cloud owner and region in the new API provides fine grained control, addresses capacity/cost differences across different //cloud owners/regions and ensures backward compatibility OOF -> MC { "VNFC": "vgw", //"vgw" is also intechangeably used as "vg" //new in R3 { //new in R3 "cloudOwner": "All", //can be a specific cloud owner such as Azure, VMware VIO, Wind River Titanium Cloud etc. "cloudRegion": "All", //can be a specific cloud region for a cloud owner "dollarCostEvaluationVM-Type": "TRUE", //evaluate dollar cost per VM type if operator has configured a policy "dollarCostEvaluationVM-FeatureGroup": "TRUE" //evaluate dollar per feature/group of features if operator has configured a policy }, { "cloudOwner": "OpenStack", // new in R3, // different cloud owners may need different capacities for the same VNFC because of implementation differences "cloudRegion": "All", // new in R3, // different cloud regions for a cloud owner may need different capacities for the same VNFC due to different SW // versions and HW configuration "capacityProperty": //same as R2, presence of this means capacity check needs to be done for the <cloud owner, cloud region> { "request": "{\"vCPU\": {\"quantity\": {\"get_param\": \"REQUIRED_VCPU\"}, \"Memory\": {\"quantity\": {\"get_param\": \"REQUIRED_MEM\"}, \"unit\": \"GB\"}, \"Storage\": {\"quantity\": {\"get_param\": \"REQUIRED_DISK\"}, \"unit\": \"GB\"}}" } }, } //return netValue per <cloud owner, cloud region> //cloud regions which fail capacity check are not in this list MC -> OOF { { "cloudOwner": "OpenStack", "cloudRegion": "1", "netValue": "99" }, { "cloudOwner": "VIO", "cloudRegion": "5", "netValue": "100" }, { "cloudOwner": "Azure", "cloudRegion": "3", "netValue": "101" }, } |
Code Block | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
// //Policy relevant to MC Azure Plugin // //<Service, VNFC> to instanceType Mapping { { "Service": "vCPE" "VNFC": "vgw", //"vgw" is also intechangeably used as "vg" "cloudOwner": "Azure", "instanceType": "x1" } } //workload deployment cost for instance type per cloud region { { "cloudRegion": "5", "instanceType": "x1", "workloadDeploymentCost": "100" }, { "cloudRegion": "10", "instanceType": "x1", "workloadDeploymentCost": "120" }, } |
...