Versions Compared

Key

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

Architecture and dependencies

View file
namefgpsworkflow.pdf
height400

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
languageyml
titleGroup API
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
languageyml
titlePlacement API
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).

#
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
titlePolicy Model
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

JSON Viewer
width800
height800
{
  "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"
    }
  ]
}