...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "homing_template_version": "2017-10-10", "parameters": { "service_name": "Residential vCPE", "service_id": "vcpe_service_id", "customer_lat": 32.89748, "customer_long": -97.040443, "REQUIRED_MEM": 4, "REQUIRED_DISK": 100, "pnf_id": "some_pnf_id" }, "locations": { "customer_loc": { "latitude": { "get_param": "customer_lat" }, "longitude": { "get_param": "customer_long" } }, "brg_loc": { "pnf_host_name": { "get_param": "pnf_id" } } }, "demands": { "vGMuxInfra": [ { "inventory_provider": "aai", "inventory_type": "service", "attributes": { "equipment_type": "vG_Mux", "customer_id": "some_company" }, "excluded_candidates": [ { "candidate_id": "1ac71fb8-ad43-4e16-9459-c3f372b8236d" } ], "existing_placement": [ { "candidate_id": "21d5f3e8-e714-4383-8f99-cc480144505a" } ] } ], "vG": [ { "inventory_provider": "aai", "inventory_type": "cloud" } ] }, "constraints": [ { "constraint_vgmux_customer": { "type": "distance_to_location", "demands": [ "vGMuxInfra" ], "properties": { "distance": "< 100 km", "location": "customer_loc" } } }, { "colocation": { "type": "zone", "demands": [ "vGMuxInfra", "vG" ], "properties": { "qualifier": "same", "category": "region" } } }, { "hpa_constraint": { "type": "hpa", "demands": [ "vG" ], "properties": { "evaluate": [ { "label": "flavor_label_1", "features": [ { "hpa-feature": "basicCapabilities", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "4", "operator": "=" }, { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "4", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "numa", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numaNodes", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-0", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-1", "hpa-attribute-value": "4", "operator": "=" }, { "hpa-attribute-key": "numaMem-0", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" }, { "hpa-attribute-key": "numaMem-1", "hpa-attribute-value": "4", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "cpuPinning", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "logicalCpuThreadPinningPolicy", "hpa-attribute-value": "prefer", "operator": "=" }, { "hpa-attribute-key": "logicalCpuPinningPolicy", "hpa-attribute-value": "dedicated", "operator": "=" } ] } ] }, { "label": "flavor_label_2", "features": [ { "hpa-feature": "basicCapabilities", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numVirtualCpu", "hpa-attribute-value": "8", "operator": "=" }, { "hpa-attribute-key": "virtualMemSize", "hpa-attribute-value": "16", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "numa", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "numaNodes", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-0", "hpa-attribute-value": "2", "operator": "=" }, { "hpa-attribute-key": "numaCpu-1", "hpa-attribute-value": "4", "operator": "=" }, { "hpa-attribute-key": "numaMem-0", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" }, { "hpa-attribute-key": "numaMem-1", "hpa-attribute-value": "4", "operator": "=", "unit": "GB" } ] }, { "hpa-feature": "memoryPageSize", "hpa-version": "v1", "architecture": "generic", "hpa-feature-attributes": [ { "hpa-attribute-key": "memoryPageSize", "hpa-attribute-value": "2", "operator": "=", "unit": "GB" } ] } ] } ] } } }, { "cloud_min_guarantee": { "type": "attribute", "demands": [ "vG" ], "properties": { "evaluate": { "cpu_min_guarantee": true, "mem_min_guarantee": true } } } }, { "check_cloud_capacity": null, "type": "vim_fit", "demands": [ "vG" ], "properties": { "vim-controller": "multicloud", "request": { "vCPU": 10, "mem": { "quantity": { "get_param": "REQUIRED_MEM" }, "unit": "GB" }, "disk": { "quantity": { "get_param": "REQUIRED_DISK" }, "unit": "GB" } } } } ], "optimization": { "minimize": { "sum": [ { "distance_between": [ "customer_loc", "vGMuxInfra" ] }, { "distance_between": [ "customer_loc", "vG" ] } ] } } } |
Code Block | ||||
---|---|---|---|---|
| ||||
---
homing_template_version: '2017-10-10'
parameters:
service_name: Residential vCPE
service_id: vcpe_service_id
customer_lat: 32.89748
customer_long: -97.040443
REQUIRED_MEM: 4
REQUIRED_DISK: 100
pnf_id: some_pnf_id
locations:
customer_loc:
latitude:
get_param: customer_lat
longitude:
get_param: customer_long
brg_loc:
pnf_host_name:
get_param: pnf_id
demands:
vGMuxInfra:
- inventory_provider: aai
inventory_type: service
attributes:
equipment_type: vG_Mux
customer_id: some_company
excluded_candidates:
- candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236d
existing_placement:
- candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505a
vG:
- inventory_provider: aai
inventory_type: cloud
constraints:
- constraint_vgmux_customer:
type: distance_to_location
demands:
- vGMuxInfra
properties:
distance: "< 100 km"
location: customer_loc
- colocation:
type: zone
demands:
- vGMuxInfra
- vG
properties:
qualifier: same
category: region
- hpa_constraint:
type: hpa
demands:
- vG
properties:
evaluate:
- label: flavor_label_1
features:
- hpa-feature: basicCapabilities
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numVirtualCpu
hpa-attribute-value: '4'
operator: "="
- hpa-attribute-key: virtualMemSize
hpa-attribute-value: '4'
operator: "="
unit: GB
- hpa-feature: numa
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numaNodes
hpa-attribute-value: '2'
operator: "="
- hpa-attribute-key: numaCpu-0
hpa-attribute-value: '2'
operator: "="
- hpa-attribute-key: numaCpu-1
hpa-attribute-value: '4'
operator: "="
- hpa-attribute-key: numaMem-0
hpa-attribute-value: '2'
operator: "="
unit: GB
- hpa-attribute-key: numaMem-1
hpa-attribute-value: '4'
operator: "="
unit: GB
- hpa-feature: cpuPinning
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: logicalCpuThreadPinningPolicy
hpa-attribute-value: prefer
operator: "="
- hpa-attribute-key: logicalCpuPinningPolicy
hpa-attribute-value: dedicated
operator: "="
- label: flavor_label_2
features:
- hpa-feature: basicCapabilities
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numVirtualCpu
hpa-attribute-value: '8'
operator: "="
- hpa-attribute-key: virtualMemSize
hpa-attribute-value: '16'
operator: "="
unit: GB
- hpa-feature: numa
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numaNodes
hpa-attribute-value: '2'
operator: "="
- hpa-attribute-key: numaCpu-0
hpa-attribute-value: '2'
operator: "="
- hpa-attribute-key: numaCpu-1
hpa-attribute-value: '4'
operator: "="
- hpa-attribute-key: numaMem-0
hpa-attribute-value: '2'
operator: "="
unit: GB
- hpa-attribute-key: numaMem-1
hpa-attribute-value: '4'
operator: "="
unit: GB
- hpa-feature: memoryPageSize
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: memoryPageSize
hpa-attribute-value: '2'
operator: "="
unit: GB
- cloud_min_guarantee:
type: attribute
demands:
- vG
properties:
evaluate:
cpu_min_guarantee: true
mem_min_guarantee: true
- check_cloud_capacity:
type: vim_fit
demands:
- vG
properties:
vim-controller: multicloud
request:
vCPU: 10
mem:
quantity:
get_param: REQUIRED_MEM
unit: GB
disk:
quantity:
get_param: REQUIRED_DISK
unit: GB
optimization:
minimize:
sum:
- distance_between:
- customer_loc
- vGMuxInfra
- distance_between:
- customer_loc
- vG |
# sample homing template for vCPE
homing_template_version: '2017-10-10'
parameters:
service_name: Residential vCPE
service_id: vcpe_service_id
customer_lat: 32.897480
customer_long: -97.040443
REQUIRED_MEM: 4
REQUIRED_DISK: 100
pnf_id: some_pnf_id
# List of geographical locations
locations:
customer_loc:
latitude: {get_param: customer_lat}
longitude: {get_param: customer_long}
brg_loc:
pnf_host_name: {get_param: pnf_id}
# List of VNFs (demands) to be homed
demands:
vGMuxInfra:
- inventory_provider: aai
inventory_type: service
attributes:
equipment_type: vG_Mux
customer_id: some_company
orchestration-status: Activated
model-invariant-id: d4da47f8-df13-4c94-9ecf-5c417bf53e27
model-version-id: 80ca8d06-d770-4803-9186-a0f8a3091fee
excluded_candidates:
- candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236d
existing_placement:
- candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505a
vG:
- inventory_provider: aai
inventory_type: cloud
constraints:
# distance between the customer and vGMuxInfra
- constraint_vgmux_customer:
type: distance_to_location
demands: [vGMuxInfra]
properties:
distance: < 100 km
location: customer_loc
# cloud region co-location constraint
- colocation:
type: zone
demands: [vGMuxInfra, vG]
properties:
qualifier: same
category: region
# required HPA features, grouped by label.
# Each label corresponds to a flavor mapped by Conductor
- hpa_constraint:
type: hpa
demands: [vG]
properties:
evaluate:
- label: flavor_label_1
features:
- hpa-feature: basicCapabilities
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numVirtualCpu
hpa-attribute-value: "4"
operator: "="
- hpa-attribute-key: virtualMemSize
hpa-attribute-value: "4"
operator: "="
unit: "GB"
- hpa-feature: numa
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numaNodes
hpa-attribute-value: "2"
operator: "="
- hpa-attribute-key: numaCpu-0
hpa-attribute-value: "2"
operator: "="
- hpa-attribute-key: numaCpu-1
hpa-attribute-value: "4"
operator: "="
- hpa-attribute-key: numaMem-0
hpa-attribute-value: "2"
operator: "="
unit: "GB"
- hpa-attribute-key: numaMem-1
hpa-attribute-value: "4"
operator: "="
unit: "GB"
- hpa-feature: cpuPinning
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: logicalCpuThreadPinningPolicy
hpa-attribute-value: prefer
operator: "="
- hpa-attribute-key: logicalCpuPinningPolicy
hpa-attribute-value: dedicated
operator: "="
- label: flavor_label_2
features:
- hpa-feature: basicCapabilities
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numVirtualCpu
hpa-attribute-value: "8"
operator: "="
- hpa-attribute-key: virtualMemSize
hpa-attribute-value: "16"
operator: "="
unit: "GB"
- hpa-feature: numa
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: numaNodes
hpa-attribute-value: "2"
operator: "="
- hpa-attribute-key: numaCpu-0
hpa-attribute-value: "2"
operator: "="
- hpa-attribute-key: numaCpu-1
hpa-attribute-value: "4"
operator: "="
- hpa-attribute-key: numaMem-0
hpa-attribute-value: "2"
operator: "="
unit: "GB"
- hpa-attribute-key: numaMem-1
hpa-attribute-value: "4"
operator: "="
unit: "GB"
- hpa-feature: memoryPageSize
hpa-version: v1
architecture: generic
hpa-feature-attributes:
- hpa-attribute-key: memoryPageSize
hpa-attribute-value: "2"
operator: "="
unit: "GB"
# min guarantee constraints
- cloud_min_guarantee:
type: attribute
demands: [vG]
properties:
evaluate:
cpu_min_guarantee: true
mem_min_guarantee: true
# check capacity
- check_cloud_capacity:
type: vim_fit
demands: [vG]
properties:
vim-controller: multicloud
request:
vCPU: 10
mem:
quantity: {get_param: REQUIRED_MEM}
unit: GB
disk:
quantity: {get_param: REQUIRED_DISK}
unit: GB
# objective function
optimization:
minimize:
sum:
- distance_between:
- customer_loc
- vGMuxInfra
- distance_between:
- customer_loc
- vG