[VNFRQTS] Update R-55307 & R-35414
[vnfrqts/requirements.git] / docs / Chapter5 / Heat / ONAP Heat Orchestration Templates Overview.rst
index acc9ef3..144235d 100644 (file)
@@ -49,6 +49,7 @@ deployed incrementally to create the complete VNF.
     :target: VNF
     :keyword: MUST
     :updated: casablanca
+    :validation_mode: static
 
     A VNF **MUST** be composed of one Base Module
 
@@ -59,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
@@ -106,31 +98,34 @@ after initial VNF deployment to add capacity.
     :id: R-46119
     :target: VNF
     :keyword: MAY
+    :updated: dublin
 
-    A VNF's Heat Orchestration Template's Resource OS::Heat::CinderVolume
+    A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
     **MAY** be defined in a Base Module.
 
 .. req::
     :id: R-90748
     :target: VNF
     :keyword: MAY
+    :updated: dublin
 
-    A VNF's Heat Orchestration Template's Resource OS::Heat::CinderVolume
+    A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
     **MAY** be defined in an Incremental Module.
 
 .. req::
     :id: R-03251
     :target: VNF
     :keyword: MAY
+    :updated: dublin
 
-    A VNF's Heat Orchestration Template's Resource OS::Heat::CinderVolume
+    A VNF's Heat Orchestration Template's Resource ``OS::Cinder::Volume``
     **MAY** be defined in a Cinder Volume Module.
 
 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 Virtual Machine
 (VM) (i.e., OS::Nova::Server) is deleted, allowing the volume to be reused
-on another instance (e.g., during a failover activity).
+on another instance (e.g., during a fail over activity).
 
 .. req::
     :id: R-11200
@@ -269,7 +264,7 @@ Base Modules
     :target: VNF
     :keyword: MUST
     :validation_mode: static
-    :updated: casablanca
+    :updated: el alto
 
     A VNF Heat Orchestration Template's Base Module file name **MUST** include
     case insensitive 'base' in the filename and
@@ -285,7 +280,8 @@ Base Modules
      4.) ``<text>_base_<text>``.y[a]ml
 
     where ``<text>`` **MUST** contain only alphanumeric characters and
-    underscores '_' and **MUST NOT** contain the case insensitive word ``base``.
+    underscores '_' and **MUST NOT** contain the case insensitive string
+    ``base`` or ``volume``.
 
 .. req::
     :id: R-91342
@@ -306,11 +302,11 @@ Incremental Modules
     :target: VNF
     :keyword: MUST
     :validation_mode: static
-    :updated: casablanca
+    :updated: el alto
 
     VNF Heat Orchestration Template's Incremental Module file name
     **MUST** contain only alphanumeric characters and underscores
-    '_' and **MUST NOT** contain the case insensitive word ``base``.
+    '_' and **MUST NOT** contain the case insensitive string ``base``.
 
 .. req::
     :id: R-94509
@@ -348,6 +344,24 @@ Cinder Volume Modules
     be named identical to the base or incremental module it is supporting with
     ``_volume`` appended.
 
+
+.. req::
+    :id: R-589037
+    :keyword: MUST
+    :validation_mode: static
+    :introduced: dublin
+    :updated: el alto
+
+    A VNF Heat Orchestration Template's Cinder Volume Module ``resources:``
+    section
+    **MUST** only be defined using one of the following:
+
+    * one of more ``OS::Cinder::Volume`` resources
+    * one or more ``OS::Heat::ResourceGroup`` resources that call a nested YAML
+      file that contains only ``OS::Cinder::Volume`` resources
+    * a resource that calls a nested YAML file (static nesting) that contains
+      only ``OS::Cinder::Volume`` resources
+
 .. req::
     :id: R-31141
     :target: VNF
@@ -368,11 +382,11 @@ Nested Heat file
     :target: VNF
     :keyword: MUST
     :validation_mode: static
-    :updated: casablanca
+    :updated: el alto
 
     VNF Heat Orchestration Template's Nested YAML file name **MUST** contain
     only alphanumeric characters and underscores '_' and
-    **MUST NOT** contain the case insensitive word ``base``.
+    **MUST NOT** contain the case insensitive string ``base``.
 
 .. req::
     :id: R-70276
@@ -431,29 +445,23 @@ other VNFs.
     :id: R-52753
     :target: VNF
     :keyword: MUST
-    :validation_mode: static
+    :validation_mode: none
+    :updated: dublin
 
     VNF's Heat Orchestration Template's Base Module's output parameter's
     name and type **MUST** match the VNF's Heat Orchestration Template's
-    incremental Module's name and type unless the output parameter is of
-    type ``comma_delimited_list``, then the corresponding input parameter
-    **MUST** be declared as type ``json``.
-
-If the Output parameter has a comma_delimited_list value (e.g., a collection
-of UUIDs from a Resource Group), then the corresponding input parameter must
-be declared as type ``json`` and not a ``comma_delimited_list``,
-which is actually a string value with embedded commas.
-
+    incremental Module's name and type.
 
 .. req::
     :id: R-22608
     :target: VNF
-    :keyword: MUST NOT
+    :keyword: SHOULD NOT
     :validation_mode: static
+    :updated: dublin
 
     When a VNF's Heat Orchestration Template's Base Module's output
     parameter is declared as an input parameter in an Incremental Module,
-    the parameter attribute ``constraints:`` **MUST NOT** be declared.
+    the parameter attribute ``constraints:`` **SHOULD NOT** be declared.
 
 Additional details on ONAP Base Module Output Parameters are provided in
 :ref:`ONAP Output Parameter Names` and ONAP VNF Modularity.
@@ -467,13 +475,12 @@ ONAP Volume Module Output Parameters
     :target: VNF
     :keyword: MUST
     :validation_mode: static
-    :updated: casablanca
+    :updated: dublin
 
     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.
+    UUID(s) of the Cinder Volumes created in template.
 
 A VNF's Heat Orchestration Template's Cinder Volume Module Output Parameter(s)
 are only available for the module (base or incremental) that the volume
@@ -485,29 +492,22 @@ template is associated with.
     :target: VNF
     :keyword: MUST
     :validation_mode: static
-    :updated: casablanca
+    :updated: dublin
 
     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``.
-
-If the Output parameter has a comma_delimited_list value (e.g., a collection
-of UUIDs from a Resource Group), then the corresponding input parameter must
-be declared as type json and not a comma_delimited_list, which is actually
-a string value with embedded commas.
-
+    in the corresponding Base Module or Incremental Module.
 
 .. req::
     :id: R-20547
     :target: VNF
-    :keyword: MUST NOT
+    :keyword: SHOULD NOT
     :validation_mode: static
+    :updated: dublin
 
     When an ONAP Volume Module Output Parameter is declared as an input
     parameter in a base or an incremental module Heat Orchestration
-    Template, parameter constraints **MUST NOT** be declared.
+    Template, parameter constraints **SHOULD NOT** be declared.
 
 Additional details on ONAP Base Module Output Parameters are provided in
 :ref:`ONAP Output Parameter Names` and :ref:`ONAP Heat Cinder Volumes`.
@@ -532,7 +532,7 @@ ONAP does not support the use of heat stack-update command for scaling
     :id: R-39349
     :target: VNF
     :keyword: MUST NOT
-    :validation_mode: static
+    :validation_mode: none
 
     A VNF Heat Orchestration Template **MUST NOT** be designed to utilize the
     OpenStack ``heat stack-update`` command for scaling (growth/de-growth).
@@ -541,7 +541,7 @@ ONAP does not support the use of heat stack-update command for scaling
     :id: R-43413
     :target: VNF
     :keyword: MUST
-    :validation_mode: static
+    :validation_mode: none
 
     A VNF **MUST** utilize a modular Heat Orchestration Template design to
     support scaling (growth/de-growth).
@@ -557,7 +557,7 @@ Scope of a Heat Orchestration Template
     :id: R-59482
     :target: VNF
     :keyword: MUST NOT
-    :validation_mode: static
+    :validation_mode: none
 
     A VNF's Heat Orchestration Template **MUST NOT** be VNF instance
     specific or cloud site specific.
@@ -570,8 +570,50 @@ Orchestration Template at orchestration time.
     :id: R-01896
     :target: VNF
     :keyword: MUST
-    :validation_mode: static
+    :validation_mode: none
 
     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
+    :introduced: dublin
+    :validation_mode: static
+
+    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
+    :validation_mode: static
+    :introduced: dublin
+
+    The VNF's Heat Orchestration Template's ZIP file **MUST NOT** include
+    a binary image file.
+