Architecture and dependencies
View file | ||||
---|---|---|---|---|
|
Outgoing APIs
HAS must send this group (Anti-affinity in this example) definition to FGPS first so it can understand what Anti-affinity group will be requested in the followed placement request. This info is also extracted from policy.
Code Block | ||||
---|---|---|---|---|
| ||||
parameters: group_name_1: type: string description: First group name group_type_1: type: string description: First group type group_level_1: type:string description: First group level resources: group_1: type: ONAP::FGPS::Group properties: name: { get_param: group_name_1 } type: { get_param: group_type_1} level: { get_param: group_level_1 } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
parameters:
availability_zone_1:
type: string
description: First AZ name
VDU_name_1:
type: string
description: First VDU id or name
flavor_1:
type:string
description: Flavor for VDU_1
group_1:
type: string
description: Affinity or Anti-affinity name for VDU_1
availability_zone_2:
type: string
description: Second AZ name
VDU_name_2:
type: string
description: Second VDU id or name
flavor_2:
type:string
description: Flavor for VDU_2
group_2:
type: string
description: Affinity or Anti-affinity name for VDU_2
resources:
VDU_1:
type: ONAP::FGPS::VDU
properties:
name: { get_param: VDU_name_1 }
flavor: { get_param: flavor_1}
availability_zone: { availability_zone_1 } // initially, empty and FGPS will set up value
metadata:
valet_groups: { get_param: group_1 } // this is the Affinity or Anti-affinity name to be used for VDU
VDU_2:
type: ONAP::FGPS::VDU
properties:
name: { get_param: VDU_name_2 }
flavor: { get_param: flavor_2}
availability_zone: { availability_zone_2 }
metadata:
valet_groups: { get_param: group_2 }
|
Incoming APIs
Policy Instance
#
#Example: vFW, AZ level Anti-affinity
#two VDUs that intend to be placed in two different AZs (Anti-affinity).
#
Elite soft json viewer |
---|
{
"service": "fgpsPolicy",
"policyName": "oofDublin.fgpsPolicy_vFW",
"description": "FGPS policy for vFW",
"templateVersion": "0.0.1",
"version": "1.0",
"priority": "3",
"riskType": "test",
"riskLevel": "2",
"guard": "False",
"content": {
"resources": "vFW",
"identity": "fgpsPolicy_vFW",
"policyScope": [
"vFW",
"US",
"INTERNATIONAL",
"ip",
"vFW"
],
"policyType": "fgpsPolicy",
"groupFeatures": [
{
"id": "<vdu.Name>",
"type": "tocsa.nodes.nfv.Vdu.Compute",
"directives": [
{
"type": "group_directives",
"attributes": [
{
"attribute_name": "vFW-Anti-affinity1",
"attribute_value": "<Blank>"
}
]
}
],
"groupProperties": [
{
"group-name": "vFW-Anti-affinity1",
"group-type": "Anti-affinity",
"mandatory": "True",
"level”=": "AZ",
"fgps-version": "v1",
"directives": []
}
]
},
{
"id": "<vdu.Name>",
"type": "tocsa.nodes.nfv.Vdu.Compute",
"directives": [
{
"type": "group_directives",
"attributes": [
{
"attribute_name": "vFW-Anti-affinity1",
"attribute_value": "<Blank>"
}
]
}
],
"groupProperties": [
{
"group-name": "vFW-Anti-affinity1",
"group-type": "Anti-affinity",
"mandatory": "True",
"level": "AZ",
"fgps-version": "v1",
"directives": []
}
]
}
]
}
} |
Policy Model
Code Block | ||
---|---|---|
| ||
tosca_definitions_version: tosca_simple_yaml_1_0_0 node_types: policy.nodes.fgpsPolicy: derived_from: policy.nodes.Root properties: policyScope: type: list description: scope where the policy is applicable required: true matchable: true entry_schema: type: string policyType: type: list description: type of a policy required: true matchable: true entry_schema: type: string consraints: - valid_values: - fgps resources: type: list required: true entry_schema: type: string identity: type: string required: true groupFeatures: type: list required: true entry_schema: type:policy.data.groupFeatures_properties data_types: policy.data.groupFeatures_properties: derived_from: tosca.nodes.Root properties: group-name: type: string required: true type: type: string required: true directives: type: list required: true entry_schema: type: policy.data.directives_properties groupProperties: type: list required: true entry_schema: type: policy.data.groupProperties_properties policy.data.directives_properties: derived_from: tosca.nodes.Root properties: type: type: string attributes: type: list entry_schema: type: policy.data.directives_attributes_properties policy.data.directives_attributes_properties: derived_from: tosca.nodes.Root properties: attribute_name: type: string attribute_value: type: string policy.data.groupProperties_properties: derived_from: tosca.nodes.Root properties: group-name: type: string required: true group-type: type: string required: true mandatory: type: string required: true level: type: string required: false fgps-version: type: string required: true directives: type: list required: true entry_schema: type: policy.data.directives_properties |
MultiCloud
Elite soft json viewer | ||||
---|---|---|---|---|
| ||||
{ "cloud-owner": "string", "cloud-region-id": "string", "availability-zones": [ { "availability-zone-name": "string", "vCPU": "int", "Memory": "float", "Storage": "int" }, { "availability-zone-name": "string //name of available zone", "vCPU": "int, // number of cores for this AZ", "Memory": "float, // size of memory, GB for this AZ", "Storage": "int, //GB for this AZ" } ] } |