Versions Compared

Key

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

...

  • These categories could be any of the following: disaster_zone, region, complex, time_zone, and maintenance_zone. Really, we are talking affinity/anti-affinity at the level of DCs, but these terms may cause confusion with affinity/anti-affinity in OpenStack.

HPA & Cloud Agnostic Intent

Constrain each demand's inventory candidates based on available Hardware platform capabilities (HPA) and also intent support. Note that currently HPA and the cloud agnostic contraints will use the same schema.

Requirements mapped to the inventory provider specified properties, referenced by the demands. For example, properties could be hardware capabilities provided by the platform through flavors or cloud-region eg:(CPU-Pinning, NUMA), features supported by the services, etc.

Schema

PropertyDescription
evaluateList of id, type, directives and flavorProperties of each VM of the VNF demand.

| Property | Description | |----------------|-----------------------------------| | evaluateList of id, type, directives and flavorProperties of each VM of the VNF demand. | 

constraints:
hpa_constraint:
type: hpa
demands: [my_vnf_demand, my_other_vnf_demand]
properties:
evaluate:
- [ List of {id: {vdu Name},
type: {type of VF}
directives: {DIRECTIVES LIST},
flavorProperties: HPACapability DICT} ]
HPACapability DICT :
hpa-feature: basicCapabilities
hpa-version: v1
architecture: generic
directives:
- DIRECTIVES LIST
hpa-feature-attributes:
- HPAFEATUREATTRIBUTES LIST
DIRECTIVES LIST
type: String
attributes:
- ATTRIBUTES LIST
ATTRIBUTES LIST
attribute_name: String
attribute_value: String
HPAFEATUREATTRIBUTES LIST
hpa-attribute-key: String
hpa-attribute-value: String
operator: One of OPERATOR
unit: String
OPERATOR : ['=', '<', '>', '<=', '>=', 'ALL']

VIM Fit

Constrain each demand's inventory candidates based on capacity check for available capacity of a list of VIMs

Requirements are sent as a request to a vim controller. vim controllers are defined by plugins in Homing (e.g., multicloud).

A vimcontroller plugin knows how to communicate with a particular endpoint (via HTTP/REST, DMaaP, etc.), obtain necessary information, and make a decision. The endpoint and credentials can be configured through plugin settings.

Schema

PropertyDescription
controllerName of a vim controller. (e.g., multicloud)
request

Opaque dictionary of key/value pairs. Values must be strings or numbers. Encoded and sent to the vim controller via a plugin.

| Property | Description | |----------------|-----------------------------------| | controller | Name of a vim controller. | | request | Opaque dictionary of key/value pairs. Values must be strings or numbers. Encoded and sent to the vim controller via a plugin. |

constraints:
  check_cloud_capacity:
    type: vim_fit
    demands: [my_vnf_demand, my_other_vnf_demand]
   properties:
     controller: multicloud
     request: REQUEST_DICT

Inventory Group

Constrain demands such that inventory items are grouped across two demands.

...