diff options
author | Bozawglanian, Hagop (hb755d) <hb755d@att.com> | 2018-09-04 21:44:28 +0000 |
---|---|---|
committer | Bozawglanian, Hagop (hb755d) <hb755d@att.com> | 2018-09-04 21:44:28 +0000 |
commit | c4e85b64d93f7bb4cdcf13cbc65f2256e5bb7a33 (patch) | |
tree | be3abe0eb6ea4407da81dcb3917dbf1d8f35e77a /docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst | |
parent | 7b7ff003d1133f68bdd17812112e5a5abc47a7f6 (diff) |
VNFRQTS - Breaking up Chapter 5 - Heat
Breaking up the Heat section to make it more granular.
Issue-ID: VNFRQTS-275
Change-Id: I020469d7aea199cd71c4d7c67664ad4dbc4071c9
Signed-off-by: Bozawglanian, Hagop (hb755d) <hb755d@att.com>
Diffstat (limited to 'docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst')
-rw-r--r-- | docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst b/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst new file mode 100644 index 0000000..90fb33b --- /dev/null +++ b/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst @@ -0,0 +1,172 @@ +.. Licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright 2017 AT&T Intellectual Property. All rights reserved. + +.. _ONAP Heat Cinder Volumes: + +ONAP Heat Cinder Volumes +---------------------------- + +Cinder Volumes are created with the heat resource OS::Cinder::Volume. + +As stated in :need:`R-46119`, :need:`R-90748`, :need:`R-03251`, a +VNF's Heat Orchestration Template's Resource OS::Heat::CinderVolume +**MAY** be defined in a Base Module, Incremental Module, or Cinder +Volume Module. + +ONAP supports the independent deployment of a Cinder volume via separate +Heat Orchestration Templates, the Cinder Volume module. This allows the +volume to persist after VNF deletion so that they can be reused on +another instance (e.g., during a failover activity). + +A Base Module or Incremental Module may have a corresponding volume +module. Use of separate volume modules is optional. A Cinder volume may +be embedded within the Base Module or Incremental Module if persistence +is not required. + +If a VNF Base Module or Incremental Module has an independent volume +module, the scope of volume templates must be 1:1 with Base module or +Incremental module. A single volume module must create only the volumes +required by a single Incremental module or Base module. + +As stated in :need:`R-11200`, a VNF's Cinder Volume Module, when it exists, +**MUST** be 1:1 with a Base module or Incremental module. That is, +A single volume module must create only the volumes required by a +single Incremental module or Base module. + +As stated in :need:`R-30395`, a VNF's Cinder Volume Module **MAY** utilize +nested heat. + +As stated in :need:`R-89913`, a VNF's Heat Orchestration Template's Cinder Volume +Module Output Parameter(s) **MUST** include the +UUID(s) of the Cinder Volumes created in template, +while others **MAY** be included. + +As stated in :need:`R-07443`, a VNF's Heat Orchestration Templates' Cinder Volume +Module Output Parameter's name and type **MUST** match the input parameter +name and type in the corresponding Base Module or Incremental Module unless +the Output Parameter is of the type 'comma_delimited_list', +then the corresponding input parameter **MUST** be declared as type 'json'. + +A single volume module must create only the volumes +required by a single Incremental module or Base module. + +The following rules apply to independent volume Heat templates: + +.. req:: + :id: R-79531 + :target: VNF + :keyword: MUST + + The VNF Heat Orchestration Template **MUST** define + "outputs" in the volume template for each Cinder volume + resource universally unique identifier (UUID) (i.e. ONAP + Volume Template Output Parameters). + +- The VNF Incremental Module or Base Module must define input + parameters that match each Volume output parameter (i.e., ONAP Volume + Template Output Parameters). + + - ONAP will supply the volume template outputs automatically to the + bases/incremental template input parameters. + +- Volume modules may utilize nested Heat templates. + +Optional Property availability_zone +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. req:: + :id: R-25190 + :target: VNF + :keyword: SHOULD NOT + + A VNF's Heat Orchestration Template's Resource 'OS::Cinder::Volume' + **SHOULD NOT** declare the property 'availability_zone'. + +If the property is used, the value **MUST** +be enumerated in the environment file and must be set to nova', which +is the default. There are no requirements on the parameter naming +convention with the exception that the naming convention **MUST NOT** be the +same as the 'OS::Nova::Server' property 'availability_zone' (i.e., +'availability_zone_{index}'). + +Optional Property volume_type +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +OpenStack supports multiple volume types. If the OS::Cinder::Volume optional +property volume_type is not specified, the OpenStack default volume type is +used. If a specific volume type is required, the property is used and +the value **MUST** be enumerated in the environment file. There are no +requirements on the parameter naming convention + +Cinder Volume Examples +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +*Examples: Volume Template* + +A VNF has a Cinder volume module, named incremental\_volume.yaml, that +creates an independent Cinder volume for a VM in the module +incremental.yaml. The incremental\_volume.yaml defines a parameter in +the output section, lb\_volume\_id\_0 which is the UUID of the cinder +volume. lb\_volume\_id\_0 is defined as a parameter in incremental.yaml. +ONAP captures the UUID value of lb\_volume\_id\_0 from the volume module +output statement and provides the value to the incremental module. + +Note that the example below is not a complete Heat Orchestration +Template. The {vm-type} has been defined as "lb" for load balancer + +incremental\_volume.yaml + +.. code-block:: yaml + + parameters: + vnf_name: + type: string + lb_volume_size_0: + type: number + ... + + resources: + dns_volume_0: + type: OS::Cinder::Volume + properties: + name: + str_replace: + template: VNF_NAME_volume_0 + params: + VNF_NAME: { get_param: vnf_name } + size: {get_param: dns_volume_size_0} + ... + + outputs: + lb_volume_id_0: + value: {get_resource: dns_volume_0} + ... + + +incremental.yaml + +.. code-block:: yaml + + parameters: + lb_name_0: + type: string + lb_volume_id_0: + type: string + ... + + resources: + lb_0: + type: OS::Nova::Server + properties: + name: {get_param: dns_name_0} + networks: + ... + + lb_0_volume_attach: + type: OS::Cinder::VolumeAttachment + properties: + instance_uuid: { get_resource: lb_0 } + volume_id: { get_param: lb_volume_id_0 } + + |