summaryrefslogtreecommitdiffstats
path: root/docs/Chapter5
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Chapter5')
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst2
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Networking.rst97
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Orchestration Template Format.rst17
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Orchestration Templates Overview.rst47
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters.rst2
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters.rst67
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Parameters.rst42
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}.rst54
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Support of Environment Files.rst61
-rw-r--r--docs/Chapter5/Heat/ONAP Heat Template Constructs.rst90
-rw-r--r--docs/Chapter5/Heat/ONAP Heat VNF Modularity.rst11
11 files changed, 175 insertions, 315 deletions
diff --git a/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst b/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst
index 4f2861f..fe5c877 100644
--- a/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Cinder Volumes.rst
@@ -49,7 +49,7 @@ Module unless the Output Parameter is of the type ``comma_delimited_list``,
then the corresponding input parameter **MUST** be declared as type ``json``.
A volume template must define ``outputs`` for each Cinder volume resource
-universally unique identifier (UUID) (i.e. ECOMP Volume Template Output
+universally unique identifier (UUID) (i.e. ONAP Volume Template Output
Parameters.
- The VNF Incremental Module or Base Module must define input
diff --git a/docs/Chapter5/Heat/ONAP Heat Networking.rst b/docs/Chapter5/Heat/ONAP Heat Networking.rst
index 7591a97..79e39c6 100644
--- a/docs/Chapter5/Heat/ONAP Heat Networking.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Networking.rst
@@ -58,40 +58,6 @@ independently of VNFs.
use the port for the purpose of reaching VMs in the same VNF.
.. req::
- :id: R-69014
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When a VNF connects to an external network, a network role, referred to
- as the ``{network-role}`` **MUST** be assigned to the external network for
- use in the VNF's Heat Orchestration Template.
-
-.. req::
- :id: R-05201
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When a VNF connects to two or more external networks, each external
- network **MUST** be assigned a unique ``{network-role}``
- in the context of the VNF for use in the VNF's Heat Orchestration
- Template.
-
-.. req::
- :id: R-83015
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- A VNF's ``{network-role}`` assigned to an external network **MUST**
- be different than the ``{network-role}`` assigned to the VNF's
- internal networks, if internal networks exist.
-
-.. req::
:id: R-99794
:target: VNF
:keyword: MUST
@@ -101,33 +67,9 @@ independently of VNFs.
An external network **MUST** have one subnet. An external network
**MAY** have more than one subnet.
-Note that this document refers to ``{network-role}`` which in reality
-is the ``{network-role-tag}``. The value of the
-``{network-role}`` / ``{network-role-tag}``
-is determined by the designer of the VNF's Heat Orchestration Template and
-there is no requirement for ``{network-role}`` / ``{network-role-tag}``
-uniqueness across Heat Orchestration Templates for
-different VNFs.
-
-When an external network is created by ONAP, the network is assigned a
-``{network-role}``. The ``{network-role}`` of the network is not required to
-match the ``{network-role}`` of the VNF Heat Orchestration Template.
-
-For example, the VNF Heat Orchestration Template can assign a
-``{network-role}``
-of ``oam`` to a network which attaches to an external network with a
-``{network-role}`` of ``oam_protected_1`` .
-
-When the Heat Orchestration Template is on-boarded into ONAP
- * each ``{network-role}`` value in the Heat Orchestration Template
- is mapped to the ``{network-role-tag}`` in the ONAP
- data structure.
- * each ``OS::Neutron::Port`` is associated with the external network it is
- connecting to, thus creating the VNF Heat Orchestration Template
- ``{network-role}`` / ``{network-role-tag}``
- to external network ``{network-role}`` mapping.
-
-ONAP enforces a naming convention for parameters associated with
+ONAP enforces a naming convention for
+resource IDs and resource property
+parameters associated with
external networks. :ref:`ONAP Heat Resource ID and Parameter Naming Convention`
provides additional details.
@@ -195,39 +137,6 @@ Contrail Heat Resources.
external router.
.. req::
- :id: R-68936
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When a VNF creates an internal network, a network role, referred to as
- the ``{network-role}`` **MUST** be assigned to the internal network
- for use in the VNF's Heat Orchestration Template.
-
-.. req::
- :id: R-32025
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When a VNF creates two or more internal networks, each internal
- network **MUST** be assigned a unique ``{network-role}`` in the context
- of the VNF for use in the VNF's Heat Orchestration Template.
-
-.. req::
- :id: R-69874
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- A VNF's ``{network-role}`` assigned to an internal network **MUST**
- be different than the ``{network-role}`` assigned to the VNF's external
- networks.
-
-.. req::
:id: R-16241
:target: VNF
:keyword: MUST
diff --git a/docs/Chapter5/Heat/ONAP Heat Orchestration Template Format.rst b/docs/Chapter5/Heat/ONAP Heat Orchestration Template Format.rst
index edc3b34..a97827c 100644
--- a/docs/Chapter5/Heat/ONAP Heat Orchestration Template Format.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Orchestration Template Format.rst
@@ -786,20 +786,3 @@ ONAP implementation does not support the Environment File resource_registry
section. The resource_registry section allows for the definition of custom
resources.
-SDC Treatment of Environment Files
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Parameter values enumerated in the environment file are used by SDC as
-the default value. However, the SDC user may use the SDC GUI to
-overwrite the default values in the environment file.
-
-SDC generates a new environment file for distribution to MSO based on
-the uploaded environment file and the user provided GUI updates. The
-user uploaded environment file is discarded when the new file is
-created.
-
-ONAP has requirements for what parameters must be enumerated in the
-environment file and what parameter must not be enumerated in the
-environment file. See :ref:`Output Parameters` and
-:ref:`ONAP Heat Resource ID and Parameter Naming Convention` for more details.
-
diff --git a/docs/Chapter5/Heat/ONAP Heat Orchestration Templates Overview.rst b/docs/Chapter5/Heat/ONAP Heat Orchestration Templates Overview.rst
index acc9ef3..f1e2b4e 100644
--- a/docs/Chapter5/Heat/ONAP Heat Orchestration Templates Overview.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Orchestration Templates Overview.rst
@@ -60,15 +60,6 @@ deployed incrementally to create the complete VNF.
A VNF **MAY** be composed of zero to many Incremental Modules.
.. req::
- :id: R-20974
- :target: VNF
- :keyword: MUST
- :updated: casablanca
-
- At orchestration time, the VNF's Base Module **MUST**
- be deployed first, prior to any incremental modules.
-
-.. req::
:id: R-28980
:target: VNF
:keyword: MAY
@@ -575,3 +566,41 @@ Orchestration Template at orchestration time.
A VNF's Heat Orchestration Template's parameter values that are constant
across all deployments **MUST** be declared in a Heat Orchestration
Template Environment File.
+
+ONAP VNF On-Boarding
+^^^^^^^^^^^^^^^^^^^^
+
+.. req::
+ :id: R-511776
+ :keyword: MUST
+
+ When a VNF's Heat Orchestration Template is ready
+ to be on-boarded to ONAP,
+ all files composing the VNF Heat Orchestration Template
+ **MUST** be placed in a flat (i.e., non-hierarchical) directory and
+ archived using ZIP. The resulting ZIP file is uploaded into ONAP.
+
+The VNF's Heat Orchestration Template's ZIP file must include
+the base module YAML file (R-37028) and corresponding environment file
+(R-38474).
+
+The VNF's Heat Orchestration Template's ZIP file **MAY** include
+
+* One or more incremental module YAML files (R-13196) and corresponding
+ environment files (R-81725).
+* One or more volume module YAML files (R-03251) and corresponding
+ environment files (R-53433).
+* One or more nested YAML files (R-36582, R-56721, R-30395).
+* One or more files that are retrieved via the intrinsic function
+ ``get_file``. The ``get_file`` function returns the content of a file
+ into a Heat Orchestration Template. It is generally used as a file
+ inclusion mechanism for files containing scripts or configuration files.
+ (See Section 9.3)
+
+.. req::
+ :id: R-348813
+ :keyword: MUST
+
+ The VNF's Heat Orchestration Template's ZIP file **MUST NOT** include
+ a binary image file.
+
diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters.rst
index 1fbdec7..8a31cad 100644
--- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Contrail Resource Parameters.rst
@@ -234,7 +234,7 @@ instance_ip_address*
The property instance_ip_address uses the same parameter naming
convention as the property fixed_ips and Map Property ip_address in
-OS::Neutron::Port. The resource is assigning an ECOMP SDN-C Assigned IP
+OS::Neutron::Port. The resource is assigning an ONAP SDN-C Assigned IP
Address. The {network-role} has been defined as oam_protected to
represent an oam protected network and the {vm-type} has been defined as
fw for firewall.
diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters.rst
index 948f8aa..4342bb0 100644
--- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Neutron Parameters.rst
@@ -62,40 +62,15 @@ This will be described in the forth coming sections.
Items to Note
~~~~~~~~~~~~~~
-.. req::
- :id: R-93272
- :target: VNF
- :keyword: MAY
- :updated: casablanca
-
- A VNF **MAY** have one or more ports connected to a unique
- external network. All VNF ports connected to the unique external
- network **MUST** have cloud assigned IP Addresses
- or **MUST** have ONAP SDN-C assigned IP addresses.
-
-.. req::
- :id: R-13841
- :target: VNF
- :keyword: MAY
- :updated: casablanca
-
- A VNF **MAY** have one or more ports connected to a unique
- internal network. All VNF ports connected to the unique internal
- network **MUST** have cloud assigned IP Addresses
- or **MUST** have statically assigned IP addresses.
-
-.. req::
- :id: R-07577
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
+A VNF **MAY** have one or more ports connected to a unique
+external network. All VNF ports connected to the unique external
+network **MUST** have cloud assigned IP Addresses
+or **MUST** have ONAP SDN-C assigned IP addresses.
- If the VNF's ports connected to a unique network (internal or external)
- and the port's IP addresses are cloud assigned IP Addresses,
- all the IPv4 Addresses **MUST** be from
- the same subnet and all the IPv6 Addresses **MUST** be from the
- same subnet.
+A VNF **MAY** have one or more ports connected to a unique
+internal network. All VNF ports connected to the unique internal
+network **MUST** have cloud assigned IP Addresses
+or **MUST** have statically assigned IP addresses.
.. req::
:id: R-45602
@@ -165,6 +140,25 @@ Items to Note
* property ``fixed_ips`` map property ``subnet``
**MUST NOT** be used
+.. req::
+ :id: R-681859
+ :keyword: MUST
+
+ A VNF's Heat Orchestration Template's ``OS::Neutron::Port`` resource's
+
+ * Resource ID (defined in R-20453)
+ * property ``network`` parameter name (defined in R-62983 and
+ R-86182)
+ * property ``fixed_ips``, map property ``ip_address`` parameter name
+ (defined in R-40971, R-04697, R-71577, R-23503, R-78380, R-85235,
+ R-27818, and R-29765)
+ * property ``fixed_ips``, map property ``subnet`` parameter name
+ (defined in R-62802, R-15287, R-84123, R-76160)
+ * property ``allowed_address_pairs`` parameter name (defined in
+ R-41492 and R-83418)
+
+ **MUST** contain the identical ``{network-role}``.
+
Property: network
^^^^^^^^^^^^^^^^^^
@@ -1048,6 +1042,10 @@ The property ``fixed_ips`` is used to assign IPs to a port. The Map Property
* ``{network-role}`` is the network role of the network.
+
+Note that ONAP only supports cloud assigned IP addresses from one IPv4 subnet
+of a given network.
+
.. req::
:id: R-83677
:target: VNF
@@ -1100,6 +1098,9 @@ value at orchestration to the Heat Orchestration Template.
* ``{network-role}`` is the network role of the network.
+Note that ONAP only supports cloud assigned IP addresses from one IPv6 subnet
+of a given network.
+
.. req::
:id: R-80829
:target: VNF
diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Parameters.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Parameters.rst
index b5501fd..f861615 100644
--- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Parameters.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Parameters.rst
@@ -35,15 +35,21 @@ Requirement R-82481 defines how the ``{vm-type}`` is used.
A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource's
- * Resource ID
- * property ``image`` parameter name
- * property ``flavor`` parameter name
- * property ``name`` parameter name
-
+ * Resource ID (defined in R-29751)
+ * property ``image`` parameter name (defined in R-58670)
+ * property ``flavor`` parameter name (defined in R-45188)
+ * property ``name`` parameter name (defined in R-54171 & R-87817)
+ * property port referenced OS::Neutron::Port Resource ID
+ (defined in R-58670)
**MUST** contain the identical ``{vm-type}``
and **MUST** follow the naming conventions defined
- in R-58670, R-45188, R-54171, R-87817, and R-29751.
+ in R-58670, R-45188, R-54171, R-87817, and R-29751. And the ``{index}`` in
+ the ``OS::Nova::Server`` Resource ID (defined in R-29751) **MUST** match
+ the ``{vm-type_index}`` defined in
+ the ``OS::Nova::Server`` property ``port``
+ referenced ``OS::Neutron::Port`` Resource ID.
+
The table below provides a summary. The sections that follow provides
the detailed requirements.
@@ -241,18 +247,6 @@ Property: Name
zero and increments by one.
.. req::
- :id: R-40899
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
- property ``name`` parameter is defined as a ``string``, a parameter
- **MUST** be delcared for
- each ``OS::Nova::Server`` resource associated with the ``{vm-type}``.
-
-.. req::
:id: R-87817
:target: VNF
:keyword: MUST
@@ -265,18 +259,6 @@ Property: Name
``{vm-type}_names``.
.. req::
- :id: R-85800
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server``
- property ``name`` parameter is defined as a ``comma_delimited_list``,
- a parameter **MUST** be delcared once for all ``OS::Nova::Server`` resources
- associated with the ``{vm-type}``.
-
-.. req::
:id: R-22838
:target: VNF
:keyword: MUST NOT
diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}.rst
index 48ca384..134c383 100644
--- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{network-role}.rst
@@ -5,8 +5,31 @@
{network-role}
-----------------------------
-The assignment of a {network-role} is discussed in
-:ref:`ONAP Heat Networking`.
+.. req::
+ :id: R-69014
+ :target: VNF
+ :keyword: MUST
+ :validation_mode: static
+ :updated: casablanca
+
+ When a VNF's port connects to an internal network or external network,
+ a network role, referred to
+ as the ``{network-role}`` **MUST** be assigned to the network for
+ use in the VNF's Heat Orchestration Template. The ``{network-role}``
+ is used in the VNF's Heat Orchestration Template resource IDs
+ and resource property parameter names.
+
+.. req::
+ :id: R-05201
+ :target: VNF
+ :keyword: MUST
+ :validation_mode: static
+ :updated: casablanca
+
+ When a VNF connects to two or more unique networks, each
+ network **MUST** be assigned a unique ``{network-role}``
+ in the context of the VNF for use in the VNF's Heat Orchestration
+ Template.
.. req::
:id: R-21330
@@ -108,3 +131,30 @@ For example, if a VNF has a '{vm-type}' of 'oam' and a
A VNF's Heat Orchestration Template's ``{network-role}`` case in Resource
property parameter names **SHOULD** match the case of ``{network-role}``
in Resource IDs and vice versa.
+
+
+Note that this document refers to ``{network-role}`` which in reality
+is the ``{network-role-tag}``. The value of the
+``{network-role}`` / ``{network-role-tag}``
+is determined by the designer of the VNF's Heat Orchestration Template and
+there is no requirement for ``{network-role}`` / ``{network-role-tag}``
+uniqueness across Heat Orchestration Templates for
+different VNFs.
+
+When an external network is created by ECOMP, the network is also assigned a
+``{network-role}``. The ``{network-role}`` of the network is not required to
+match the ``{network-role}`` of the VNF Heat Orchestration Template.
+
+For example, the VNF Heat Orchestration Template can assign a
+``{network-role}``
+of ``oam`` to a network which attaches to an external network with a
+``{network-role}`` of ``oam_protected`` .
+
+When the Heat Orchestration Template is on-boarded into ECOMP
+ * each ``{network-role}`` value in the Heat Orchestration Template
+ is mapped to the ``{network-role-tag}`` in the ECOMP
+ data structure.
+ * each ``OS::Neutron::Port`` is associated with the external network it is
+ connecting to, thus creating the VNF Heat Orchestration Template
+ ``{network-role}`` / ``{network-role-tag}``
+ to external network ``{network-role}`` mapping.
diff --git a/docs/Chapter5/Heat/ONAP Heat Support of Environment Files.rst b/docs/Chapter5/Heat/ONAP Heat Support of Environment Files.rst
index 35286f0..e8117ad 100644
--- a/docs/Chapter5/Heat/ONAP Heat Support of Environment Files.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Support of Environment Files.rst
@@ -7,63 +7,4 @@
ONAP Heat Support of Environment Files
-----------------------------------------
-The use of an environment file in OpenStack is optional. In ONAP, it is
-mandatory. A Heat Orchestration Template uploaded to ONAP must have a
-corresponding environment file, even if no parameters are required to
-be enumerated.
-
-*(Note that ONAP does not programmatically enforce the use of
-an environment file.)*
-
-As stated in :need:`R-38474`, :need:`R-81725`, and :need:`R-53433`:
-
-
- * A VNF's Base Module **MUST** have a corresponding Environment File.
- * A VNF's Incremental Module **MUST** have a corresponding Environment File.
- * A VNF's Cinder Volume Module **MUST** have a corresponding environment
- File.
-
-A nested heat template must not have an environment file; OpenStack does
-not support it.
-
-The environment file must contain parameter values for the ONAP
-Orchestration Constants and VNF Orchestration Constants. These
-parameters are identical across all instances of a VNF type, and
-expected to change infrequently. The ONAP Orchestration Constants are
-associated with OS::Nova::Server image and flavor properties (See
-:ref:`Property image` and :ref:`Property flavor`). Examples of VNF
-Orchestration Constants are the networking parameters associated
-with an internal network (e.g., private IP ranges) and Cinder
-volume sizes.
-
-The environment file must not contain parameter values for parameters
-that are instance specific (ONAP Orchestration Parameters, VNF
-Orchestration Parameters). These parameters are supplied to the Heat by
-ONAP at orchestration time.
-
-SDC Treatment of Environment Files
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Parameter values enumerated in the environment file are used by SDC as
-the default value. However, the SDC user may use the SDC GUI to
-overwrite the default values in the environment file.
-
-SDC generates a new environment file for distribution to SO based on
-the uploaded environment file and the user provided GUI updates. The
-user uploaded environment file is discarded when the new file is
-created. Note that if the user did not change any values via GUI
-updates, the SDC generated environment file will contain the same values
-as the uploaded file.
-
-Use of Environment Files when using OpenStack "heat stack-create" CLI
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When ONAP is instantiating the Heat Orchestration Template, certain
-parameter must not be enumerated in the environment file. This document
-provides the details of what parameters should not be enumerated.
-
-If the Heat Orchestration Template is to be instantiated from the
-OpenStack Command Line Interface (CLI) using the command "heat
-stack-create", all parameters must be enumerated in the environment
-file.
-
+<section deleted>
diff --git a/docs/Chapter5/Heat/ONAP Heat Template Constructs.rst b/docs/Chapter5/Heat/ONAP Heat Template Constructs.rst
index ce2c1e4..1af326e 100644
--- a/docs/Chapter5/Heat/ONAP Heat Template Constructs.rst
+++ b/docs/Chapter5/Heat/ONAP Heat Template Constructs.rst
@@ -10,7 +10,7 @@ ONAP Heat Heat Template Constructs
.. _Nested Heat Templates:
Nested Heat Templates
-^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^
ONAP supports nested Heat templates per the OpenStack specifications.
Nested templates may be suitable for larger VNFs that contain many
@@ -21,7 +21,7 @@ either statically by repeated definition or dynamically by using the
resource OS::Heat::ResourceGroup.
Nested Heat Template Requirements
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ONAP supports nested Heat Orchestration Templates.
@@ -79,16 +79,6 @@ As stated in requirement :need:`R-99646`, a VNF's YAML files
(i.e, Heat Orchestration Template files and Nested files) **MUST**
have a unique name in the scope of the VNF.
-.. req::
- :id: R-52530
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- A VNF's Heat Orchestration Template's Nested YAML file
- **MUST** be in the same directory hierarchy as the VNF's Heat
- Orchestration Templates.
.. req::
:id: R-90022
@@ -164,17 +154,13 @@ Template's ``OS::Nova::Server`` Resource ``metadata`` map value parameter
``environment_context`` is passed into a Nested YAML file, the parameter
name ``environment_context`` **MUST NOT** change.
-With nested templates, outputs are required to expose any resource
-properties of the child templates to the parent template. Those would
-not explicitly be declared as parameters but simply referenced as
-``get_attribute`` targets against the "parent" resource.
-
-A parameter declared in the outputs: section of a nested template can
-be accessed from the parent template as an attribute (i.e., via
-``get_attr``) of the "pseudo resource" whose type is in the nested
-template. In the case of a ``OS::Heat::ResourceGroup``, an output will be
-an attribute of the ``OS::Heat::ResourceGroup`` itself, and will be an
-array from the perspective of the parent template.
+If a VNF's Heat Orchestration Template's nested YAML file is
+required to expose a resource property to the invoking Heat Orchestration
+Template, an ``outputs:`` statement
+must be used in the nested YAML file. The invoking template
+references the property by using the intrinsic function ``get_attr``
+that targets the resource invoking the nested YAML file and references
+the parameter defined in the ``outputs`` section.
.. req::
:id: R-17528
@@ -189,7 +175,7 @@ array from the perspective of the parent template.
**MUST NOT** contain an ``OS::Nova::Server`` resource.
Nested Heat Template Example: Static
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
incremental.yaml
@@ -252,10 +238,10 @@ nested.yaml
metadata:
vnf_id: { get_param: vnf_id }
vf_module_id: { get_param: vf_module_id }
- vnf_name {get_param: vnf_name }
+ vnf_name: {get_param: vnf_name }
Use of Heat ResourceGroup
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~~~~~~~~~~~~~~~~~~~~~~~~~
The OS::Heat::ResourceGroup is a useful Heat element for creating
multiple instances of a given resource or collection of resources.
@@ -315,7 +301,7 @@ You can then reference within the nested template as:
{ get_param: [names, {get_param: index} ] }
OS::Heat::ResourceGroup Property count
-++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++
.. req::
@@ -345,7 +331,7 @@ This is required for ONAP to build the TOSCA model for the VNF.
index: index
Availability Zone and ResourceGroups
-++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++
The resource OS::Heat::ResourceGroup and the property availability_zone
has been an "issue" with a few VNFs since ONAP only supports
@@ -439,12 +425,12 @@ az_list_generate.yaml
{ get_param: availability_zone_0 },
{ get_param: availability_zone_1 },
{ get_param: availability_zone_0 },
- { get_param: availability_zone_1 },
+ { get_param: availability_zone_1 }
]
Nested Heat Template Example: OS::Heat::ResourceGroup
-++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
In this example, ocgapp_volume.yml creates volumes using a
OS::Heat::ResourceGroup that uses nested heat by calling
@@ -597,7 +583,7 @@ ocgapp.yml
instance_uuid: {get_resource: ocgapp_server_1}
External References
-^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^
Heat templates *must not* reference any HTTP-based resource
definitions, any HTTP-based nested configurations, or any HTTP-based
@@ -626,15 +612,14 @@ information. The purpose of using an URI is to give the namespace a
unique name.
Heat Files Support (get_file)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Heat Templates may contain the inclusion of text files into Heat
-templates via the Heat get_file directive. This may be used, for
-example, to define a common "user-data" script, or to inject files into
-a VM on startup via the "personality" property.
-
-Support for Heat Files is subject to the following limitations:
+A VNF's Heat Orchestration Template may contain the inclusion of text files
+containing scripts or configuration files. The ``get_file`` intrinsic
+function returns the content of a file into a Heat Orchestration Template.
+The support for the ``get_file`` intrinsic function in ONAP is subject to the
+following limitations:
.. req::
:id: R-76718
@@ -647,9 +632,9 @@ Support for Heat Files is subject to the following limitations:
``get_file``, the ``get_file`` target **MUST** be referenced in
the Heat Orchestration Template by file name.
-The ``get_file`` target files are on-boarded to SDC in the same package
+The ``get_file`` target files are on-boarded to SDC in the same zip file
that contains the VNF's complete Heat Orchestration Template.
-
+See requirement R-511776.
.. req::
:id: R-41888
@@ -661,21 +646,6 @@ that contains the VNF's complete Heat Orchestration Template.
A VNF's Heat Orchestration Template intrinsic function
``get_file`` **MUST NOT** utilize URL-based file retrieval.
-.. req::
- :id: R-87848
- :target: VNF
- :keyword: MUST
- :validation_mode: static
- :updated: casablanca
-
- When using the intrinsic function get_file, ONAP does not support
- a directory hierarchy for included files. All files must be in a
- single, flat directory per VNF. A VNF's Heat Orchestration
- Template's ``get_file`` target files **MUST** be in the same
- directory hierarchy as the VNF's Heat Orchestration Templates.
-
-ONAP does not support a hierarchical structure. A VNF's YAML files
-must be in a single, flat directory.
.. req::
:id: R-05050
@@ -691,7 +661,7 @@ must be in a single, flat directory.
* in a VNF's Heat Orchestration Templates nested YAML file
Key Pairs
-^^^^^^^^^^
+^^^^^^^^^
When Nova Servers are created via Heat templates, they may be passed a
"keypair" which provides an ssh key to the 'root' login on the newly
@@ -756,7 +726,7 @@ of lb (for load balancer)):*
save_private_key: false
Security Groups
-^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^
OpenStack allows a tenant to create Security groups and define rules
within the security groups.
@@ -771,7 +741,7 @@ network or it can vary by VM (i.e., {vm-type}) and network type (i.e.,
{network-role}).
Anti-Affinity and Affinity Rules
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Anti-affinity or affinity rules are supported using normal OpenStack
OS::Nova::ServerGroup resources. Separate ServerGroups are typically
@@ -828,7 +798,7 @@ balancer and db for database.
group: {get_resource: lb_server_group}
Resource Data Synchronization
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For cases where synchronization is required in the orchestration of Heat
resources, two approaches are recommended:
@@ -893,5 +863,3 @@ oam server.
volume_id: {get_param: oam_vol_1}
mountpoint: /dev/vdb
instance_uuid: {get_resource: oam_server_01}
-
-
diff --git a/docs/Chapter5/Heat/ONAP Heat VNF Modularity.rst b/docs/Chapter5/Heat/ONAP Heat VNF Modularity.rst
index 23ce06b..ae44870 100644
--- a/docs/Chapter5/Heat/ONAP Heat VNF Modularity.rst
+++ b/docs/Chapter5/Heat/ONAP Heat VNF Modularity.rst
@@ -22,7 +22,7 @@ As stated in :need:`R-33132`, a VNF's Heat Orchestration Template **MAY** be
3. a Cinder Volume Module Heat Orchestration Template (referred to as
Cinder Volume Module).
-As stated in :need:`R-20974`, at orchestration time, the VNF's Base
+At orchestration time, the VNF's Base
Module **MUST** be deployed first, prior to any incremental modules.
As stated in :need:`R-28980`, :need:`R-86926`, and :need:`R-91497`, a
@@ -36,12 +36,9 @@ As stated in :need:`R-68122`, a VNF's incremental module **MAY** be deployed
more than once, either during initial VNF deployment and/or scale out
As stated in :need:`R-37028` and :need:`R-13196`, a VNF **MUST** be composed
-of one Base Module and *MAY** be composed of zero to many Incremental
+of one Base Module and **MAY** be composed of zero to many Incremental
Modules.
-As stated in :need:`R-20974`, at orchestration time, the VNF's Base Module
-**MUST** be deployed first, prior to any incremental modules.
-
ONAP also supports the concept of an optional, independently deployed
Cinder volume via a separate Heat Orchestration Templates, referred to
as a Cinder Volume Module. This allows the volume to persist after a VM
@@ -73,12 +70,12 @@ Incremental Module.
exposed by declaring a parameter in the
``outputs`` section of the base module.
- For ECOMP to provided the UUID value of the shared resource to the
+ For ONAP to provided the UUID value of the shared resource to the
incremental module, the parameter name defined in the ``outputs``
section of the base module **MUST** be defined as a parameter
in the ``parameters`` section of the incremental module.
- ECOMP will capture the output parameter name and value in the base module
+ ONAP will capture the output parameter name and value in the base module
and provide the value to the corresponding parameter(s) in the
incremental module(s).