Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

HAS Homing Specification (R') - after retrieving and translating homing policies

# Homing Specification Versionsample homing template for vCPE 

homing_template_version: '2017-10-10

# Runtime order Parameters
'
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
    excluded_candidates:
  orchestration-status: Activated
      model-invariant-id: d4da47f8-df13-4c94-9ecf-5c417bf53e27
      model-version-id: 80ca8d06- candidate_idd770-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: service


# distance between the customer and vGMuxInfra
- constraint_vgmux_customer:
    type: distance_to_location
    demands: [vGMuxInfra]
    properties:
     attributes: distance: < 100 km
      equipment_type: vGlocation: customer_loc

# cloud region co-location constraint
- colocation:
    type: zone
    demands: [vGMuxInfra, vG]
      modelId: vG_model_idproperties:
      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
          hpa-hw-arch: generic
          hpa-feature-attributes:
          - hpa-attr-key: numVirtualCpu
            hpa-attr-value: "4"
            operator: "="
          - hpa-attr-key: virtualMemSize
            hpa-attr-value: "4"
            operator: "="
            unit: "GB"
        - hpa-feature: numa
          hpa-version: v1
          hpa-hw-arch: generic
          hpa-feature-attributes:
          - hpa-attr-key: numaNodes
            hpa-attr-value: "2"
            operator: "="
          - hpa-attr-key: numaCpu-0
            hpa-attr-value: [0, 1]
            operator: "="
          - hpa-attr-key: numaCpu-1
      customer_id: some_company
      hpa-attr-value: [2, 3, 4, 5]
        excluded_candidates:
    operator: "="
          - hpa-attr-key: numaMem- candidate_id: 1ac71fb8-ad43-4e16-9459-c3f372b8236d
    existing_placement:
0
            hpa-attr-value: "2"
            operator: "="
            unit: "GB"
          - hpa-attr-key: numaMem-1
            hpa-attr-value: "4"
            operator: "="
            unit: "GB"
       - candidate_id: 21d5f3e8-e714-4383-8f99-cc480144505a
  - inventory_provider: aai
    inventory_type: cloud

# List of homing policies (constraints)
constraints:
    # distance constraint
    - constraint_vgmux_customer:
      	type: distance_to_location - hpa-feature: cpuPinning
          hpa-version: v1
          hpa-hw-arch: generic
          hpa-feature-attributes:
          - hpa-attr-key: logicalCpuThreadPinningPolicy
            hpa-attr-value: prefer
            operator: "="
          - hpa-attr-key: logicalCpuPinningPolicy
            hpa-attr-value: dedicated
            operator: "="
      - label: flavor_label_2
        features:
          - hpa-feature: basicCapabilities
            hpa-version: v1
            hpa-hw-arch: generic
            hpa-feature-attributes:
            - hpa-attr-key: numVirtualCpu
              hpa-attr-value: "8"
              operator: "="
            - hpa-attr-key: virtualMemSize
              hpa-attr-value: "16"
              operator: "="
              unit: "GB"
          - hpa-feature: numa
            hpa-version: v1
        demands: [vGMuxInfra]    hpa-hw-arch: generic
            hpa-feature-attributes:
        properties:    - hpa-attr-key: numaNodes
        	distance: < 100 km
      hpa-attr-value: "2"
            location  operator: customer_loc
"="
         #  cloud region- co-location constraint
hpa-attr-key: numaCpu-0
              hpa- colocation:
    		type: zoneattr-value: [0, 1]
              operator: "="
            - hpa-attr-key: numaCpu-1
        demands      hpa-attr-value: [vGMuxInfra2, 3, 4, vG]5]
              operator: "="
            - hpa-attr-key: numaMem-0
        properties:      hpa-attr-value: "2"
        	qualifier      operator: same"="
          category    unit: region
"GB"
        #    platform capability constraint
- hpa-attr-key: numaMem-1
              hpa- numa_cpu_pin_capabilities:
    		type: attribute
attr-value: "4"
              operator: "="
              unit: "GB"
          - hpa-feature: memoryPageSize
            demandshpa-version: [vG]v1
        properties:    hpa-hw-arch: generic
        	evaluate    hpa-feature-attributes:
             vcpu_pinning- hpa-attr-key: TruememoryPageSize
              numa_topology: numa_spanning
hpa-attr-value: "2"
     # cloud provider constraint         operator: "="
              unit: "GB"

# min guarantee constraints
- cloud_versionmin_capabilitiesguarantee:
    		type: attribute
    demands: [vG]
    properties:
      evaluate:
        cpu_min_guarantee: true
        mem_min_guarantee: true

# check capacity
- check_cloud_capacity:
  type: vim_fit
  demands: [vGMuxInfravG]
  properties:
    vim-controller: multicloud
    propertiesrequest:
      vCPU:  	evaluate10
      mem:
        quantity:  	cloud_version: 1.11.84{get_param: REQUIRED_MEM}
        unit: GB
      disk:
      cloud_provider: AWS  quantity: {get_param: REQUIRED_DISK}
        unit: GB

# Objectiveobjective function to minimize
optimization:
  minimize:
    sum:
    - {distance_between: [
      - customer_loc,
      - vGMuxInfra]}
    - {distance_between: [
      - customer_loc,
      - vG]}