diff options
Diffstat (limited to 'docs/Chapter5/Heat')
10 files changed, 1742 insertions, 1487 deletions
diff --git a/docs/Chapter5/Heat/ONAP Heat Networking.rst b/docs/Chapter5/Heat/ONAP Heat Networking.rst index 308a5e3..cce7988 100644 --- a/docs/Chapter5/Heat/ONAP Heat Networking.rst +++ b/docs/Chapter5/Heat/ONAP Heat Networking.rst @@ -24,6 +24,8 @@ An External Network may be a Neutron Network or a Contrail Network. :id: R-16968 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Templates **MUST NOT** include heat resources to create external networks. @@ -37,6 +39,7 @@ independently of VNFs. :id: R-00606 :target: VNF :keyword: MAY + :updated: casablanca A VNF **MAY** be connected to zero, one or more than one external networks. @@ -45,84 +48,84 @@ independently of VNFs. :id: R-57424 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca A VNF's port connected to an external network **MUST** - use the port for the purpose of reaching VMs in another VNF - and/or an external gateway and/or external router. A VNF's port - connected to an external network **MAY** use the port for - the purpose of reaching VMs in the same VNF. - -.. req:: - :id: R-29865 - :target: VNF - :keyword: MUST - - 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. + use the port for the purpose of reaching + VMs in another VNF and/or an external gateway and/or external router. + A VNF's port connected to an external network **MAY** + 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. + 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. + 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. + 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 - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca 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}' +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}' +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. +``{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' . +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 + * 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 + * 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. + ``{network-role}`` / ``{network-role-tag}`` + to external network ``{network-role}`` mapping. ONAP enforces a naming convention for parameters associated with external networks. :ref:`ONAP Heat Resource ID and Parameter Naming Convention` @@ -142,6 +145,7 @@ or an external gateway or router :id: R-87096 :target: VNF :keyword: MAY + :updated: casablanca A VNF **MAY** contain zero, one or more than one internal networks. @@ -149,14 +153,17 @@ or an external gateway or router :id: R-35666 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - If a VNF has an internal network, the VNF Heat Orchestration - Template **MUST** include the heat resources to create the internal network. + If a VNF has an internal network, the VNF Heat Orchestration Template + **MUST** include the heat resources to create the internal network. .. req:: :id: R-86972 :target: VNF :keyword: SHOULD + :updated: casablanca A VNF **SHOULD** create the internal network in the VNF's Heat Orchestration Template Base Module. @@ -169,14 +176,18 @@ Contrail Heat Resources. :id: R-52425 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's port connected to an internal network **MUST** connect - the port to VMs in the same VNF. + A VNF's port connected to an internal network **MUST** + use the port for the purpose of reaching VMs in the same VNF. .. req:: :id: R-46461 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca A VNF's port connected to an internal network **MUST NOT** connect the port to VMs in another VNF and/or an external gateway and/or @@ -186,61 +197,58 @@ Contrail Heat Resources. :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. + 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. + 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 + 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 - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's internal network **MUST** have one subnet. A VNF's internal network **MAY** have more than one subnet. .. req:: - :id: R-34726 - :target: VNF - :keyword: MUST - - If a VNF's port is connected to an internal network and the port - is created in the same Heat Orchestration Template as the internal network, - then the port resource **MUST** use a 'get_resource' to obtain - the network UUID. - -.. req:: :id: R-22688 :target: VNF :keyword: MUST - - If a VNF's port is connected to an internal network and the - port is created in an Incremental Module and the internal - network is created in the Base Module then the UUID of the - internal network **MUST** be exposed - as a parameter in the 'outputs:' section of the Base Module and the port - resource **MUST** use a 'get_param' to obtain the network UUID. + :validation_mode: static + :updated: casablanca + + If a VNF's port is connected to an internal network and the port is + created in an Incremental Module and the internal network is created + in the Base Module then the UUID of the internal network **MUST** be + exposed as a parameter in the ``outputs:`` section of the Base Module + and the port resource **MUST** use a ``get_param`` to obtain the network + UUID. ONAP does not programmatically enforce a naming convention for parameters for internal network. However, a naming convention is 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 3d06902..523bf8b 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 @@ -22,42 +22,38 @@ External Networks :id: R-02164 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca When a VNF's Heat Orchestration Template's Contrail resource has a property that references an external network that requires the network's Fully Qualified Domain Name (FQDN), the property parameter - * **MUST** follow the format '{network-role}_net_fqdn' - * **MUST** be declared as type 'string' - * **MUST NOT** be enumerated in the NF's Heat Orchestration Template's - Environment File + * **MUST** follow the format ``{network-role}_net_fqdn`` + * **MUST** be declared as type ``string`` + * **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's + Environment File .. req:: :id: R-73228 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's parameter - '{network-role}_net_fqdn' - **MUST** be declared as type 'string'. + ``{network-role}_net_fqdn`` + **MUST** be declared as type ``string``. .. req:: :id: R-92193 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static A VNF's Heat Orchestration Template's parameter - '{network-role}_net_fqdn' + ``{network-role}_net_fqdn`` **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's Environment File. @@ -96,7 +92,6 @@ virtual_network_refs references a contrail network FQDN. security_group_refs: - get_param: fw_sec_grp_id - Interface Route Table Prefixes for Contrail InterfaceRoute Table ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -104,56 +99,54 @@ Interface Route Table Prefixes for Contrail InterfaceRoute Table :id: R-28222 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF's Heat Orchestration Template - 'OS::ContrailV2::InterfaceRouteTable' resource - 'interface_route_table_routes' property - 'interface_route_table_routes_route' map property parameter name + ``OS::ContrailV2::InterfaceRouteTable`` resource + ``interface_route_table_routes`` property + ``interface_route_table_routes_route`` map property parameter name **MUST** follow the format - * {vm-type}_{network-role}_route_prefixes + * ``{vm-type}_{network-role}_route_prefixes`` .. req:: :id: R-19756 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF's Heat Orchestration Template - 'OS::ContrailV2::InterfaceRouteTable' resource - 'interface_route_table_routes' property - 'interface_route_table_routes_route' map property parameter - '{vm-type}_{network-role}_route_prefixes' - **MUST** be defined as type 'json'. + ``OS::ContrailV2::InterfaceRouteTable`` resource + ``interface_route_table_routes`` property + ``interface_route_table_routes_route`` map property parameter + ``{vm-type}_{network-role}_route_prefixes`` + **MUST** be defined as type ``json``. .. req:: :id: R-76682 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF's Heat Orchestration Template - 'OS::ContrailV2::InterfaceRouteTable' resource - 'interface_route_table_routes' property - 'interface_route_table_routes_route' map property parameter - '{vm-type}_{network-role}_route_prefixes' + ``OS::ContrailV2::InterfaceRouteTable`` resource + ``interface_route_table_routes`` property + ``interface_route_table_routes_route`` map property parameter + ``{vm-type}_{network-role}_route_prefixes`` **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's Environment File. -The parameter '{vm-type}_{network-role}_route_prefixes' +The parameter ``{vm-type}_{network-role}_route_prefixes`` supports IP addresses in the format: 1. Host IP Address (e.g., 10.10.10.10) 2. CIDR Notation format (e.g., 10.0.0.0/28) + *Example Parameter Definition* .. code-block:: yaml @@ -195,12 +188,13 @@ supports IP addresses in the format: service_instance_refs_data: - service_instance_refs_data_interface_type: { get_param: oam_interface_type } + Resource OS::ContrailV2::InstanceIp ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The Contrail resource OS::ContrailV2::InstanceIp has two properties +The Contrail resource ``OS::ContrailV2::InstanceIp`` has two properties that parameters **MUST** follow an explicit naming convention. The -properties are 'instance_ip_address' and 'subnet_uuid'. +properties are ``instance_ip_address`` and ``subnet_uuid``. *Example OS::ContrailV2::InstanceIp Resource* @@ -235,21 +229,23 @@ properties are 'instance_ip_address' and 'subnet_uuid'. virtual_machine_interface_refs: [{ get_param: virtual_machine_interface_refs }] virtual_network_refs: [{ get_param: virtual_network_refs }] + Resource OS::ContrailV2::InstanceIp Property instance_ip_address ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A VNF's Heat Orchestration Templates resource 'OS::ContrailV2::InstanceIp' -property 'instance_ip_address' parameter +A VNF's Heat Orchestration Templates resource ``OS::ContrailV2::InstanceIp`` +property ``instance_ip_address`` parameter **MUST** follow the same requirements -that apply to the resource 'OS::Neutron' property 'fixed_ips' map -property 'ip_address' parameter. +that apply to the resource ``OS::Neutron`` property ``fixed_ips`` map +property ``ip_address`` parameter. + *Example: Contrail Resource OS::ContrailV2::InstanceIp, Property 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 ONAP SDN-C Assigned IP +OS::Neutron::Port. The resource is assigning an ECOMP 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. @@ -270,18 +266,18 @@ fw for firewall. Resource OS::ContrailV2::InstanceIp Property subnet_uuid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A VNF's Heat Orchestration Templates resource 'OS::ContrailV2::InstanceIp' -property 'subnet_uuid' parameter +A VNF's Heat Orchestration Templates resource ``OS::ContrailV2::InstanceIp`` +property ``subnet_uuid`` parameter **MUST** follow the same requirements -that apply to the resource 'OS::Neutron' property 'fixed_ips' map -property 'subnet'/'subnet_id' parameter. +that apply to the resource ``OS::Neutron`` property ``fixed_ips`` map +property ``subnet``/``subnet_id`` parameter. *Example: Contrail Resource OS::ContrailV2::InstanceIp, Property subnet_uuid* The property instance_ip_address uses the same parameter naming convention as the property fixed_ips and Map Property subnet_id in -OS::Neutron::Port. The resource is assigning a Cloud Assigned IP +OS::Neutron::Port. The resource is assigning a cloud 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. @@ -303,14 +299,14 @@ OS::ContrailV2::VirtualMachineInterface Property virtual_machine_interface_allow ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A VNF's Heat Orchestration Templates resource -'OS::ContrailV2::VirtualMachineInterface' map property, -virtual_machine_interface_allowed_address_pairs, +``OS::ContrailV2::VirtualMachineInterface`` map property, +``virtual_machine_interface_allowed_address_pairs, virtual_machine_interface_allowed_address_pairs_allowed_address_pair, virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip, -virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix +virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix`` parameter **MUST** follow the same requirements that apply to the -resource 'OS::Neutron::Port' property -'allowed_address_pairs', map property 'ip_address' parameter. +resource ``OS::Neutron::Port`` property +``allowed_address_pairs``, map property ``ip_address`` parameter. *Example OS::ContrailV2::VirtualMachineInterface* 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 049967e..c3cd308 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 @@ -12,14 +12,17 @@ The resource OS::Neutron::Port is for managing Neutron ports. Introduction ^^^^^^^^^^^^^ -Four properties of the resource OS::Neutron::Port that must follow the -ONAP parameter naming convention. The four properties are: +Four properties of the resource ``OS::Neutron::Port`` must follow the ONAP +naming convention. The four properties are: 1. network 2. fixed_ips, ip_address 3. fixed_ips, subnet_id or fixed_ips, subnet - * Note that in many examples in this document fixed_ips, subnet_id is used. + * These two properties represent the same construct. + ONAP currently has a Sev-2 issues associated with fixed_ips, subnet_id + and it is recommended to use fixed_ips, subnet + * Note that in many examples in this document fixed_ips, subnet_id is used. 4. allowed_address_pairs, ip_address @@ -46,13 +49,13 @@ The values associated with these properties may reference an external network or internal network. External networks and internal networks are defined in :ref:`ONAP Heat Networking`. -When the OS::Neutron::Port is attaching to an external network, all +When the ``OS::Neutron::Port`` is attaching to an external network, all property values are parameters that are retrieved via the intrinsic -function 'get_param'. +function ``get_param``. -When the OS::Neutron::Port is attaching to an internal network, a +When the ``OS::Neutron::Port`` is attaching to an internal network, a property value maybe retrieved via the intrinsic -function 'get_param', 'get_resource', or 'get_attr'. +function ``get_param``, ``get_resource``, or ``get_attr``. This will be described in the forth coming sections. @@ -63,9 +66,7 @@ Items to Note :id: R-93272 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF **MAY** have one or more ports connected to a unique external network. All VNF ports connected to the unique external @@ -76,9 +77,7 @@ Items to Note :id: R-13841 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF **MAY** have one or more ports connected to a unique internal network. All VNF ports connected to the unique internal @@ -89,9 +88,8 @@ Items to Note :id: R-07577 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If the VNF's ports connected to a unique network (internal or external) and the port's IP addresses are Cloud Assigned IP Addresses, @@ -103,24 +101,22 @@ Items to Note :id: R-45602 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF's Port is attached to a network (internal or external) - and the port's IP addresses are Cloud Assigned by OpenStack's DHCP - Service, the 'OS::Neutron::Port' Resource's + and the port's IP addresses are cloud assigned by OpenStack's DHCP + Service, the ``OS::Neutron::Port`` Resource's - * property 'fixed_ips' map property 'ip_address' **MUST NOT** be used - * property 'fixed_ips' map property 'subnet'/'subnet_id' **MAY** be used + * property ``fixed_ips`` map property ``ip_address`` **MUST NOT** be used + * property ``fixed_ips`` map property ``subnet``/``subnet_id`` + **MAY** be used .. req:: :id: R-63956 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca If the VNF's ports connected to a unique external network and the port's IP addresses are ONAP SDN-C assigned IP Addresses, @@ -131,24 +127,22 @@ Items to Note :id: R-48880 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF's Port is attached to an external network and the port's IP addresses are assigned by ONAP's SDN-Controller, - the 'OS::Neutron::Port' Resource's + the ``OS::Neutron::Port`` Resource's - * property 'fixed_ips' map property 'ip_address' **MUST** be used - * property 'fixed_ips' map property 'subnet'/'subnet_id' **MUST NOT** be used + * property ``fixed_ips`` map property ``ip_address`` **MUST** be used + * property ``fixed_ips`` map property ``subnet``/``subnet_id`` + **MUST NOT** be used .. req:: :id: R-18001 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca If the VNF's ports connected to a unique internal network and the port's IP addresses are statically assigned IP Addresses, @@ -159,95 +153,111 @@ Items to Note :id: R-70964 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF's Port is attached to an internal network and the port's IP addresses are statically assigned by the VNF's Heat Orchestration\ Template (i.e., enumerated in the Heat Orchestration Template's - environment file), the 'OS::Neutron::Port' Resource's + environment file), the ``OS::Neutron::Port`` Resource's - * property 'fixed_ips' map property 'ip_address' **MUST** be used - * property 'fixed_ips' map property 'subnet'/'subnet_id' - **MUST NOT** be used + * property ``fixed_ips`` map property ``ip_address`` **MUST** be used + * property ``fixed_ips`` map property ``subnet``/``subnet_id`` + **MUST NOT** be used Property: network ^^^^^^^^^^^^^^^^^^ -The Resource 'OS::Neutron::Port' property 'network' determines what network +The Resource ``OS::Neutron::Port`` property ``network`` determines what network the port is attached to. - .. req:: :id: R-18008 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' - property 'network' parameter **MUST** be declared as type: 'string'. + The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + property ``network`` parameter **MUST** be declared as type: ``string``. .. req:: :id: R-62983 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When the VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' - is attaching to an external network, the 'network' parameter name **MUST** + When the VNF's Heat Orchestration Template's Resource + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement R-57424), the + ``network`` parameter name **MUST** - - follow the naming convention '{network-role}_net_id' if the Neutron - network UUID value is used to reference the network - - follow the naming convention '{network-role}_net_name' if the OpenStack - network name is used to reference the network. + * follow the naming convention ``{network-role}_net_id`` if the Neutron + network UUID value is used to reference the network + * follow the naming convention ``{network-role}_net_name`` if the + OpenStack network name is used to reference the network. - where '{network-role}' is the network-role of the external network and - a 'get_param' **MUST** be used as the intrinsic function. + where ``{network-role}`` is the network-role of the external network + and a ``get_param`` **MUST** be used as the intrinsic function. .. req:: :id: R-86182 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When the VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' - is attaching to an internal network, and the internal network is created in a different - Heat Orchestration Template than the 'OS::Neutron::Port', the 'network' - parameter name **MUST** + When the VNF's Heat Orchestration Template's Resource + ``OS::Neutron::Port`` is attaching to an internal network (per the + ONAP definition, see Requirements R-52425 and R-46461), + and the internal network is created in a + different Heat Orchestration Template than the ``OS::Neutron::Port``, + the ``network`` parameter name **MUST** - - follow the naming convention 'int\_{network-role}_net_id' if the Neutron - network UUID value is used to reference the network - - follow the naming convention 'int\_{network-role}_net_name' if the - OpenStack network name in is used to reference the network. + * follow the naming convention ``int_{network-role}_net_id`` if the Neutron + network UUID value is used to reference the network + * follow the naming convention ``int_{network-role}_net_name`` if the + OpenStack network name in is used to reference the network. - where '{network-role}' is the network-role of the internal network and a 'get_param' **MUST** be used as the intrinsic function. + where ``{network-role}`` is the network-role of the internal network and + a ``get_param`` **MUST** be used as the intrinsic function. -In Requirement :need:`R-86182`, the internal network is created in the VNF's +In Requirement R-86182, the internal network is created in the VNF's Base Module (Heat Orchestration Template) and the parameter name is -declared in the Base Module's outputs' section. +declared in the Base Module's ``outputs`` section. The output parameter name will be declared as a parameter in the -'parameters' section of the incremental module. +``parameters`` section of the incremental module. .. req:: :id: R-93177 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When the VNF's Heat Orchestration Template's - Resource 'OS::Neutron::Port' is attaching to an internal - network, and the internal network is created in the same Heat - Orchestration Template than the 'OS::Neutron::Port', the 'network' - parameter name **MUST** obtain the UUID of the internal network - by using the intrinsic function 'get_resource' or 'get_attr' + When the VNF's Heat Orchestration Template's resource + ``OS::Neutron::Port`` is attaching to an internal network (per the + ONAP definition, see Requirements R-52425 and R-46461), + and the internal network is created in the + same Heat Orchestration Template as the ``OS::Neutron::Port``, + the ``network`` property value **MUST** obtain the UUID + of the internal network by using the intrinsic function + ``get_resource`` and referencing the Resource ID of the internal network. .. req:: :id: R-29872 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource 'OS::Nova::Server' - property 'network' parameter **MUST NOT** be enumerated in the Heat - Orchestration Template's Environment File. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property ``network`` + parameter **MUST NOT** be enumerated in the Heat Orchestration + Template's Environment File. The parameter values for external networks are provided by ONAP to the VNF's Heat Orchestration Template at orchestration time. @@ -272,6 +282,7 @@ at orchestration time. description: Neutron name for the external {network-role} network + *Example Parameter Definition of Internal Networks in an Incremental Module* .. code-block:: yaml @@ -289,51 +300,65 @@ at orchestration time. Property: fixed_ips, Map Property: ip_address ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The resource 'OS::Neutron::Port' property 'fixed_ips' -map property 'ip_address' +The resource ``OS::Neutron::Port`` property ``fixed_ips`` +map property ``ip_address`` is used to assign one IPv4 or IPv6 addresses to port. -One 'OS::Neutron::Port' resource may assign one or more +One ``OS::Neutron::Port`` resource may assign one or more IPv4 and/or IPv6 addresses. - .. req:: :id: R-34037 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's resource 'OS::Neutron::Port' - property 'fixed_ips' map property 'ip_address' parameter **MUST** - be declared as either type 'string' or type 'comma_delimited_list'. + The VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + **MUST** be declared as either type ``string`` or type + ``comma_delimited_list``. .. req:: :id: R-40971 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an external network, and an IPv4 - address is assigned using the property 'fixed_ips' map property - 'ip_address' and the parameter type is defined - as a string, the parameter name **MUST** follow the naming - convention - - '{vm-type}_{network-role}\_ip\_{index}' + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement R-57424), + and an IPv4 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a string, + the parameter name **MUST** follow the + naming convention - where + * ``{vm-type}_{network-role}_ip_{index}`` - - '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - - '{network-role}' is the {network-role} of the external network - - the value for {index} must start at zero (0) and increment by one + where + + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the external + network + * the value for ``{index}`` must start at zero (0) and increment by one .. req:: :id: R-39841 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' - property 'fixed_ips' map property 'ip_address' parameter - '{vm-type}_{network-role}_ip_{index}' **MUST NOT** be enumerated in the + The VNF's Heat Orchestration Template's Resource + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_{network-role}_ip_{index}`` + **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's Environment File. ONAP's SDN-Controller assigns the IP Address and ONAP provides @@ -347,36 +372,47 @@ the value at orchestration to the Heat Orchestration Template. {vm-type}_{network-role}_ip_{index}: type: string - description: Fixed IPv4 assignment for {vm-type} VM {index} on the{network-role} network - + description: Fixed IPv4 assignment for {vm-type} VM {index} on the {network-role} network .. req:: :id: R-04697 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When the VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' - is attaching to an external network, and an IPv4 address is assigned using - the property 'fixed_ips' map property 'ip_address' and the parameter type - is defined as a comma_delimited_list, the parameter name **MUST** follow the + When the VNF's Heat Orchestration Template's Resource + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement R-57424), + and an IPv4 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a + ``comma_delimited_list``, + the parameter name **MUST** follow the naming convention - * '{vm-type}_{network-role}_ips', + * ``{vm-type}_{network-role}_ips`` - where + where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the external network + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the external + network .. req:: :id: R-98905 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' - property 'fixed_ips' map property 'ip_address' parameter - '{vm-type}_{network-role}_ips' **MUST NOT** be enumerated in the VNF's - Heat Orchestration Template's Environment File. + The VNF's Heat Orchestration Template's Resource + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_{network-role}_ips`` + **MUST NOT** be enumerated in the + VNF's Heat Orchestration Template's Environment File. ONAP's SDN-Controller assigns the IP Address and ONAP provides the value at orchestration to the Heat Orchestration Template. @@ -397,31 +433,41 @@ Parameter Definition* :id: R-71577 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an external network, and an IPv6 address - is assigned using the property 'fixed_ips' map property 'ip_address' and - the parameter type is defined as a string, the parameter name **MUST** follow - the naming convention + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement R-57424), + and an IPv6 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a string, + the parameter name **MUST** follow the + naming convention - * '{vm-type}_{network-role}_v6_ip_{index}' + * ``{vm-type}_{network-role}_v6_ip_{index}`` - where + where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the external network - * the value for {index} must start at zero (0) and increment by one + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network + * the value for ``{index}`` must start at zero (0) and increment by one .. req:: :id: R-87123 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' - parameter '{vm-type}_{network-role}_v6_ip_{index}' - **MUST NOT** be enumerated in the VNF's Heat Orchestration - Template's Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_{network-role}_v6_ip_{index}`` + **MUST NOT** be enumerated in the + VNF's Heat Orchestration Template's Environment File. ONAP's SDN-Controller assigns the IP Address and ONAP provides the value at orchestration to the Heat Orchestration Template. @@ -436,33 +482,44 @@ the value at orchestration to the Heat Orchestration Template. type: string description: Fixed IPv6 assignment for {vm-type} VM {index} on the {network-role} network - .. req:: :id: R-23503 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an external network, and an IPv6 - address is assigned using the property 'fixed_ips' map property 'ip_address' - and the parameter type is defined as a comma_delimited_list, the parameter - name **MUST** follow the naming convention + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement Requirement R-57424), + and an IPv6 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a + ``comma_delimited_list``, + the parameter name **MUST** follow the + naming convention - * '{vm-type}_{network-role}_v6_ips' + * ``{vm-type}_{network-role}_v6_ips`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the external network + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network .. req:: :id: R-93030 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' - parameter '{vm-type}_{network-role}_v6_ips' **MUST NOT** be enumerated in the + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_{network-role}_v6_ips`` + **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's Environment File. ONAP's SDN-Controller assigns the IP Address and ONAP provides @@ -484,30 +541,42 @@ Definition* :id: R-78380 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an internal network, and an IPv4 address - is assigned using the property 'fixed_ips' map property 'ip_address' and - the parameter type is defined as a string, the parameter name **MUST** follow - the naming convention + ``OS::Neutron::Port`` is attaching to an internal network (per the + ONAP definition, see Requirements R-52425 and R-46461), + and an IPv4 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is + defined as a ``string``, + the parameter name **MUST** follow the + naming convention - * '{vm-type}\_int\_{network-role}\_ip\_{index}' + * ``{vm-type}_int_{network-role}_ip_{index}`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the internal network - * the value for {index} must start at zero (0) and increment by one + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the internal + network + * the value for ``{index`` must start at zero (0) and increment by one .. req:: :id: R-28795 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' - parameter '{vm-type}\_int\_{network-role}\_ip\_{index}' **MUST** be enumerated - in the VNF's Heat Orchestration Template's Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_int_{network-role}_ip_{index}`` + **MUST** be enumerated in the + VNF's Heat Orchestration Template's Environment File. The IP address is local to the VNF's internal network and is (re)used in every VNF spin up, thus the constant value is declared in the VNF's @@ -523,34 +592,45 @@ Heat Orchestration Template's Environment File. type: string description: Fixed IPv4 assignment for {vm-type} VM {index} on the int_{network-role} network - .. req:: :id: R-85235 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an internal network, and an IPv4 - address is assigned using the property 'fixed_ips' map property 'ip_address' - and the parameter type is defined as a comma_delimited_list, the parameter - name **MUST** follow the naming convention + ``OS::Neutron::Port`` is attaching to an internal network (per the + ONAP definition, see Requirement Requirements R-52425 and R-46461), + and an IPv4 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a + ``comma_delimited_list``, + the parameter name **MUST** follow the + naming convention - * '{vm-type}\_int\_{network-role}_ips' + * ``{vm-type}_int_{network-role}_ips`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the internal network + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network .. req:: :id: R-90206 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' - parameter '{vm-type}\_int\_{network-role}_int_ips' **MUST** be enumerated in - the VNF's Heat Orchestration Template's Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_int_{network-role}_int_ips`` + **MUST** be enumerated in the + VNF's Heat Orchestration Template's Environment File. The IP address is local to the VNF's internal network and is (re)used in every VNF spin up, thus the constant value is declared in the VNF's @@ -569,31 +649,43 @@ Heat Orchestration Template's Environment File. :id: R-27818 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an internal network, and an IPv6 address - is assigned using the property 'fixed_ips' map property 'ip_address' and - the parameter type is defined as a string, the parameter name **MUST** follow - the naming convention + ``OS::Neutron::Port`` is attaching to an internal network (per the + ONAP definition, see RRequirements R-52425 and R-46461), + and an IPv6 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a + ``string``, + the parameter name **MUST** follow the + naming convention - * '{vm-type}\_int\_{network-role}\_v6\_ip\_{index}' + * ``{vm-type}_int_{network-role}_v6_ip_{index}`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the internal network - * the value for {index} must start at zero (0) and increment by one + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network + * the value for ``{index}`` must start at zero (0) and increment by one + .. req:: :id: R-97201 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' - parameter '{vm-type}\_int\_{network-role}\_v6\_ip\_{index}' - **MUST** be enumerated in the VNF's Heat Orchestration - Template's Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_int_{network-role}_v6_ip_{index}`` + **MUST** be enumerated in the + VNF's Heat Orchestration Template's Environment File. The IP address is local to the VNF's internal network and is (re)used in every VNF spin up, thus the constant value is declared in the VNF's @@ -609,24 +701,31 @@ Heat Orchestration Template's Environment File. type: string description: Fixed IPv6 assignment for {vm-type} VM {index} on the int_{network-role} network - .. req:: :id: R-29765 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an internal network, and an IPv6 - address is assigned using the property 'fixed_ips' map property 'ip_address' - and the parameter type is defined as a comma_delimited_list, the parameter - name **MUST** follow the naming convention + ``OS::Neutron::Port`` is attaching to an internal network (per the + ONAP definition, see Requirement Requirements R-52425 and R-46461), + and an IPv6 address is assigned + using the property ``fixed_ips`` + map property ``ip_address`` and the parameter type is defined as a + ``comma_delimited_list``, + the parameter name **MUST** follow the + naming convention - * '{vm-type}\_int\_{network-role}_v6_ips' + * ``{vm-type}_int_{network-role}_v6_ips`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the internal network + * ``{vm-type}`` is the {vm-type} associated with the + ``OS::Nova::Server`` + * ``{network-role}`` is the {network-role} of the internal + network *Example Internal Network IPv6 Address comma_delimited_list Parameter Definition* @@ -644,67 +743,88 @@ Definition* :id: R-98569 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' - parameter '{vm-type}\_int\_{network-role}_v6_ips' **MUST** be enumerated in - the VNF's Heat Orchestration Template's Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``ip_address`` parameter + ``{vm-type}_int_{network-role}_v6_ips`` + **MUST** be enumerated in the + VNF's Heat Orchestration Template's Environment File. The IP address is local to the VNF's internal network and is (re)used in every VNF spin up, thus the constant value is declared in the VNF's Heat Orchestration Template's Environment File. +.. code-block:: yaml + + parameters: + + {vm-type}_int_{network-role}_v6_ips: + type: comma_delimited_list + description: Fixed IPv6 assignments for {vm-type} VMs on the int_{network-role} network .. req:: :id: R-62590 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' + The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + property ``fixed_ips`` + map property ``ip_address`` parameter associated with an external network, i.e., - - {vm-type}_{network-role}\_ip\_{index} - - {vm-type}_{network-role}\_ip\_v6\_{index} - - {vm-type}_{network-role}_ips - - {vm-type}_{network-role}_v6_ips + * ``{vm-type}_{network-role}_ip_{index}`` + * ``{vm-type}_{network-role}_ip_v6_{index}`` + * ``{vm-type}_{network-role}_ips`` + * ``{vm-type}_{network-role}_v6_ips`` - **MUST NOT** be enumerated in the Heat Orchestration Template's Environment File. - ONAP provides the IP address assignments at orchestration time. + + **MUST NOT** be enumerated in the Heat Orchestration + Template's Environment File. ONAP provides the IP address + assignments at orchestration time. .. req:: :id: R-93496 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property 'ip_address' + The VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + property ``fixed_ips`` + map property ``ip_address`` parameter associated with an internal network, i.e., - - {vm-type}\_int\_{network-role}\_ip\_{index} - - {vm-type}\_int\_{network-role}\_ip\_v6\_{index} - - {vm-type}\_int\_{network-role}_ips - - {vm-type}\_int\_{network-role}_v6_ips + * ``{vm-type}_int_{network-role}_ip_{index}`` + * ``{vm-type}_int_{network-role}_ip_v6_{index}`` + * ``{vm-type}_int_{network-role}_ips`` + * ``{vm-type}_int_{network-role}_v6_ips`` + - **MUST** be enumerated in the Heat Orchestration Template's Environment - File and IP addresses **MUST** be assigned. + **MUST** be enumerated in the Heat Orchestration + Template's Environment File and IP addresses **MUST** be + assigned. Summary Table ~~~~~~~~~~~~~~~~~ -.. csv-table:: **Table # OS::Neutron::Port Property fixed_ips map property ip_address Parameter Naming Convention** +.. csv-table:: **Table 4 OS::Neutron::Port Property fixed_ips map property ip_address Parameter Naming Convention** :header: Resource,Property,Map Property,Network Type,IP Address,Parameter Type,Parameter Name, Environment File :align: center :widths: auto - OS::Neutron::Port, fixed_ips, ip_address, external, IPv4, string, {vm-type}\_{network-role}\_ip\_{index}, NO - OS::Neutron::Port, fixed_ips, ip_address, external, IPv4, comma\_delimited\_list, {vm-type}\_{network-role}\_ips, NO - OS::Neutron::Port, fixed_ips, ip_address, external, IPv6, string, {vm-type}\_{network-role}\_v6\_ip\_{index}, NO - OS::Neutron::Port, fixed_ips, ip_address, external, IPv6, comma\_delimited\_list, {vm-type}\_{network-role}\_v6\_ips, NO - OS::Neutron::Port, fixed_ips, ip_address, internal, IPv4, string, {vm-type}\_int\_{network-role}\_ip\_{index}, YES - OS::Neutron::Port, fixed_ips, ip_address, internal, IPv4, comma\_delimited\_list, {vm-type}\_int\_{network-role}\_ips, YES - OS::Neutron::Port, fixed_ips, ip_address, internal, IPv6, string, {vm-type}\_int\_{network-role}\_v6\_ip\_{index}, YES - OS::Neutron::Port, fixed_ips, ip_address, internal, IPv6, comma\_delimited\_list, {vm-type}\_int\_{network-role}\_v6\_ips, YES + OS::Neutron::Port, fixed_ips, ip_address, external, IPv4, string, {vm-type}_{network-role}_ip_{index}, NO + OS::Neutron::Port, fixed_ips, ip_address, external, IPv4, comma_delimited_list, {vm-type}_{network-role}_ips, NO + OS::Neutron::Port, fixed_ips, ip_address, external, IPv6, string, {vm-type}_{network-role}_v6_ip_{index}, NO + OS::Neutron::Port, fixed_ips, ip_address, external, IPv6, comma_delimited_list, {vm-type}_{network-role}_v6_ips, NO + OS::Neutron::Port, fixed_ips, ip_address, internal, IPv4, string, {vm-type}_int_{network-role}_ip_{index}, YES + OS::Neutron::Port, fixed_ips, ip_address, internal, IPv4, comma_delimited_list, {vm-type}_int_{network-role}_ips, YES + OS::Neutron::Port, fixed_ips, ip_address, internal, IPv6, string, {vm-type}_int_{network-role}_v6_ip_{index}, YES + OS::Neutron::Port, fixed_ips, ip_address, internal, IPv6, comma_delimited_list, {vm-type}_int_{network-role}_v6_ips, YES Examples @@ -713,8 +833,8 @@ Examples *Example: comma_delimited_list parameters for IPv4 and IPv6 Address Assignments to an external network* -In this example, the '{network-role}' has been defined as 'oam' to represent -an oam network and the '{vm-type}' has been defined as 'db' for database. +In this example, the ``{network-role}`` has been defined as ``oam`` to represent +an oam network and the ``{vm-type}`` has been defined as ``db`` for database. .. code-block:: yaml @@ -746,8 +866,8 @@ an oam network and the '{vm-type}' has been defined as 'db' for database. *Example: string parameters for IPv4 and IPv6 Address Assignments to an external network* -In this example, the '{network-role}' has been defined as 'oam' to -represent an oam network and the '{vm-type}' has been defined as 'db' for +In this example, the ``{network-role}`` has been defined as ``oam`` to +represent an oam network and the ``{vm-type}`` has been defined as ``db`` for database. .. code-block:: yaml @@ -783,12 +903,12 @@ database. - "ip_address": {get_param: db_oam_v6_ip_1} -*Example: comma_delimited_list parameters for IPv4 and IPv6 Address +*Example*: comma_delimited_list parameters for IPv4 and IPv6 Address Assignments to an internal network* -In this example, the '{network-role}' has been defined as 'ctrl' to +In this example, the ``{network-role}`` has been defined as ``ctrl`` to represent an ctrl network internal to the vnf. -The '{vm-type}' has been defined as 'db' for +The ``{vm-type}`` has been defined as ``db`` for database. .. code-block:: yaml @@ -824,9 +944,9 @@ database. *Example: string parameters for IPv4 and IPv6 Address Assignments to an internal network* -In this example, the int_{network-role} has been defined as -int_ctrl to represent a control network internal to the vnf. -The {vm-type} has been defined as db for database. +In this example, the ``int_{network-role}`` has been defined as +``int_ctrl`` to represent a control network internal to the vnf. +The ``{vm-type}`` has been defined as ``db`` for database. .. code-block:: yaml @@ -865,10 +985,10 @@ The {vm-type} has been defined as db for database. Property: fixed_ips, Map Property: subnet_id ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The resource 'OS::Neutron::Port' property 'fixed_ips' map -property 'subnet'/'subnet_id' is used when a +The resource ``OS::Neutron::Port`` property ``fixed_ips`` map +property ``subnet``/``subnet_id`` is used when a port is requesting an IP assignment via -OpenStack's DHCP Service (i.e., Cloud Assigned). +OpenStack’s DHCP Service (i.e., cloud assigned). The IP address assignment will be made from the specified subnet. @@ -881,55 +1001,65 @@ subnet. If the network (external or internal) that the port is attaching to contains two or more subnets, specifying the subnet in the -'fixed_ips' map property 'subnet'/'subnet_id' determines which +``fixed_ips`` map property ``subnet``/``subnet_id`` determines which subnet the IP address will be assigned from. If the network (external or internal) that the port is attaching to contains two or more subnets, and the subnet is not is not -specified, OpenStack will randomly(?) determine which subnet +specified, OpenStack will randomly determine which subnet the IP address will be assigned from. -The property fixed_ips is used to assign IPs to a port. The Map Property -subnet_id specifies the subnet the IP is assigned from. - +The property ``fixed_ips`` is used to assign IPs to a port. The Map Property +``subnet_id`` specifies the subnet the IP is assigned from. .. req:: :id: R-38236 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's resource - 'OS::Neutron::Port' property 'fixed_ips' map property - 'subnet'/'subnet_id' parameter **MUST** be declared type 'string'. + The VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``subnet``/``subnet_id`` parameter + **MUST** be declared type ``string``. .. req:: :id: R-62802 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When the VNF's Heat Orchestration Template's resource - 'OS::Neutron::Port' is attaching to an external network, and an IPv4 - address is being Cloud Assigned by OpenStack's DHCP Service and the - external network IPv4 subnet is to be specified using the property - 'fixed_ips' map property 'subnet'/'subnet_id', the parameter **MUST** - follow the naming convention + When the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` is attaching + to an external network (per the ONAP definition, see + Requirement R-57424), + and an IPv4 address is being cloud assigned by OpenStack's DHCP Service + and the external network IPv4 subnet is to be specified + using the property ``fixed_ips`` + map property ``subnet``/``subnet_id``, the parameter + **MUST** follow the naming convention - * '{network-role}_subnet_id' + * ``{network-role}_subnet_id`` where - - * '{network-role}' is the network role of the network. + + * ``{network-role}`` is the network role of the network. .. req:: :id: R-83677 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property - subnet'/'subnet_id' parameter '{network-role}_subnet_id' - **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's - Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``subnet``/``subnet_id`` parameter + ``{network-role}_subnet_id`` + **MUST NOT** be enumerated in the + VNF's Heat Orchestration Template's Environment File. ONAP's SDN-Controller provides the network's subnet's UUID value at orchestration to the Heat Orchestration Template. @@ -949,51 +1079,45 @@ value at orchestration to the Heat Orchestration Template. :id: R-15287 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When the VNF's Heat Orchestration Template's resource - 'OS::Neutron::Port' is attaching to an external network, and an IPv6 - address is being Cloud Assigned by OpenStack's DHCP Service and the - external network IPv6 subnet is to be specified using the property - 'fixed_ips' map property 'subnet'/'subnet_id', the parameter **MUST** - follow the naming convention - - * '{network-role}_subnet_v6_id' + When the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` is attaching + to an external network (per the ONAP definition, see + Requirement R-57424), + and an IPv6 address is being cloud assigned by OpenStack's DHCP Service + and the external network IPv6 subnet is to be specified + using the property ``fixed_ips`` + map property ``subnet``/``subnet_id``, the parameter + **MUST** follow the naming convention - where + * ``{network-role}_v6_subnet_id`` - * '{network-role}' is the network role of the network. + where + + * ``{network-role}`` is the network role of the network. .. req:: :id: R-80829 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property - subnet'/'subnet_id' parameter '{network-role}_subnet_v6_id' - **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's - Environment File. - -ONAP's SDN-Controller provides the network's subnet's UUID -value at orchestration to the Heat Orchestration Template. - -*Example Parameter Definition* - -.. code-block:: yaml - - parameters: - - {network-role}_v6_subnet_id: - type: string - description: Neutron IPv6 subnet UUID for the {network-role} network - + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``subnet``/``subnet_id`` parameter + ``{network-role}_v6_subnet_id`` + **MUST NOT** be enumerated in the + VNF's Heat Orchestration Template's Environment File. *Example: One Cloud Assigned IPv4 Address (DHCP) assigned to a network that has two or more IPv4 subnets* -In this example, the '{network-role}' has been defined as 'oam' to represent -an oam network and the '{vm-type}' has been defined as 'lb' for load -balancer. The Cloud Assigned IP Address uses the OpenStack DHCP service +In this example, the ``{network-role}`` has been defined as ``oam`` to represent +an oam network and the ``{vm-type}`` has been defined as ``lb`` for load +balancer. The cloud assigned IP Address uses the OpenStack DHCP service to assign IP addresses. .. code-block:: yaml @@ -1017,8 +1141,8 @@ to assign IP addresses. address assigned to a network that has at least one IPv4 subnet and one IPv6 subnet* -In this example, the '{network-role}' has been defined as 'oam' to represent -an oam network and the '{vm-type}' has been defined as 'lb' for load +In this example, the ``{network-role}`` has been defined as ``oam`` to represent +an oam network and the ``{vm-type}`` has been defined as ``lb`` for load balancer. .. code-block:: yaml @@ -1042,39 +1166,48 @@ balancer. - subnet_id: { get_param: oam_subnet_id } - subnet_id: { get_param: oam_v6_subnet_id } - .. req:: :id: R-84123 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When - - the VNF's Heat Orchestration Template's resource 'OS::Neutron::Port' - in an Incremental Module is attaching to an internal network - that is created in the Base Module, AND - - an IPv4 address is being Cloud Assigned by OpenStack's DHCP Service AND - - the internal network IPv4 subnet is to be specified using the - property 'fixed_ips' map property 'subnet'/'subnet_id', + * the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` in an Incremental Module is attaching + to an internal network (per the ONAP definition, see + Requirements R-52425 and R-46461) + that is created in the Base Module, AND + * an IPv4 address is being cloud assigned by OpenStack's DHCP Service AND + * the internal network IPv4 subnet is to be specified + using the property ``fixed_ips`` map property ``subnet``/``subnet_id``, the parameter **MUST** follow the naming convention - * 'int\_{network-role}_subnet_id' + + * ``int_{network-role}_subnet_id`` + where - * '{network-role}' is the network role of the internal network - - Note that the parameter **MUST** be defined as an 'output' parameter in - the base module. + * ``{network-role}`` is the network role of the internal network + + Note that the parameter **MUST** be defined as an ``output`` parameter in + the base module. .. req:: :id: R-69634 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property - subnet'/'subnet_id' parameter 'int\_{network-role}_subnet_id' - **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's - Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``subnet``/``subnet_id`` parameter + ``int_{network-role}_subnet_id`` + **MUST NOT** be enumerated in the + VNF's Heat Orchestration Template's Environment File. The assumption is that internal networks are created in the base module. The Neutron subnet network ID will be passed as an output parameter @@ -1092,39 +1225,44 @@ input parameter. type: string description: Neutron IPv4 subnet UUID for the int_{network-role} network - .. req:: :id: R-76160 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When - - the VNF's Heat Orchestration Template's resource - 'OS::Neutron::Port' in an Incremental Module is attaching to an - internal network that is created in the Base Module, AND - - an IPv6 address is being Cloud Assigned by OpenStack's DHCP Service AND - - the internal network IPv6 subnet is to be specified using the property - 'fixed_ips' map property 'subnet'/'subnet_id', + * the VNF's Heat Orchestration Template's + resource ``OS::Neutron::Port`` in an Incremental Module is attaching + to an internal network (per the ONAP definition, see Requirement TBD) + that is created in the Base Module, AND + * an IPv6 address is being cloud assigned by OpenStack's DHCP Service AND + * the internal network IPv6 subnet is to be specified + using the property ``fixed_ips`` map property ``subnet``/``subnet_id``, the parameter **MUST** follow the naming convention - * 'int\_{network-role}_v6_subnet_id' - where - * '{network-role}' is the network role of the internal network + ``int_{network-role}_v6_subnet_id``, + where ``{network-role}`` is the network role of the internal network. - - Note that the parameter **MUST** be defined as an 'output' parameter in - the base module. + Note that the parameter **MUST** be defined as an ``output`` parameter in + the base module. .. req:: :id: R-22288 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'fixed_ips' map property - 'subnet'/'subnet_id' parameter 'int\_{network-role}_v6_subnet_id' - **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's - Environment File. + ``OS::Neutron::Port`` property ``fixed_ips`` + map property ``subnet``/``subnet_id`` parameter + ``int_{network-role}_v6_subnet_id`` + **MUST NOT** be enumerated in the + VNF's Heat Orchestration Template's Environment File. + *Example Parameter Definition* @@ -1136,11 +1274,10 @@ input parameter. type: string description: Neutron subnet UUID for the int_{network-role} network - Property: allowed\_address\_pairs, Map Property: ip\_address ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The property 'allowed_address_pairs' in the resource 'OS::Neutron::Port' +The property ``allowed_address_pairs`` in the resource ``OS::Neutron::Port`` allows the user to specify a mac_address and/or ip_address that will pass through a port regardless of subnet. This enables the use of protocols, such as VRRP, which allow for a Virtual IP (VIP) address @@ -1153,26 +1290,29 @@ Note that the management of the VIP IP addresses (i.e. transferring ownership between active and standby VMs) is the responsibility of the VNF application. - .. req:: :id: R-62300 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca If a VNF has two or more ports that require a Virtual IP Address (VIP), - a VNF's Heat Orchestration Template's Resource 'OS::Neutron::Port' property - 'allowed_address_pairs' map property 'ip_address' parameter **MUST** be used. + a VNF's Heat Orchestration Template's Resource + ``OS::Neutron::Port`` property ``allowed_address_pairs`` + map property ``ip_address`` parameter + **MUST** be used. -The 'allowed_address_pairs' is an optional property. It is not required. +The ``allowed_address_pairs`` is an optional property. It is not required. ONAP automation supports the assignment of VIP addresses -for external networks. ONAP support the assignment of one IPv4 VIP address +for external networks. ONAP support the assignment of one IPv4 VIP address and/or one IPv6 VIP address to a set of ports associated with a -'{vm-type}' and '{network-role}'. +``{vm-type}`` and ``{network-role}``. If a VNF requires more than one IPv4 VIP address and/or more than one IPv6 VIP address to a set of ports associated with a -'{vm-type}' and '{network-role}', there are "manual" work-around +``{vm-type}`` and ``{network-role}``, there are "manual" work-around procedures that can be utilized. VIP Assignment, External Networks, Supported by Automation @@ -1182,9 +1322,8 @@ VIP Assignment, External Networks, Supported by Automation :id: R-91810 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF requires ONAP to assign a Virtual IP (VIP) Address to ports connected an external network, the port @@ -1194,9 +1333,8 @@ VIP Assignment, External Networks, Supported by Automation :id: R-41956 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF requires ONAP to assign a Virtual IP (VIP) Address to ports connected an external network, the port @@ -1206,9 +1344,8 @@ VIP Assignment, External Networks, Supported by Automation :id: R-10754 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF has two or more ports that attach to an external network that require a Virtual IP Address (VIP), @@ -1221,50 +1358,53 @@ VIP Assignment, External Networks, Supported by Automation :id: R-98748 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'allowed_address_pairs' - map property 'ip_address' parameter - **MUST** be declared as type 'string'. + ``OS::Neutron::Port`` property ``allowed_address_pairs`` + map property ``ip_address`` parameter + **MUST** be declared as type ``string``. .. req:: :id: R-41492 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an external network, - and an IPv4 Virtual IP (VIP) address is assigned via ONAP automation - using the property 'allowed_address_pairs' map property 'ip_address' and - the parameter name **MUST** follow the naming convention + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement R-57424), + and an IPv4 Virtual IP (VIP) + address is assigned via ONAP automation + using the property ``allowed_address_pairs`` + map property ``ip_address`` and + the parameter name **MUST** follow the + naming convention - * '{vm-type}_{network-role}_floating_ip' + * ``{vm-type}_{network-role}_floating_ip`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the external network - - And the parameter **MUST** be declared as type 'string'. + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network + + And the parameter **MUST** be declared as type ``string``. .. req:: :id: R-83412 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'allowed_address_pairs' - map property 'ip_address' parameter - '{vm-type}_{network-role}_floating_ip' + ``OS::Neutron::Port`` property ``allowed_address_pairs`` + map property ``ip_address`` parameter + ``{vm-type}_{network-role}_floating_ip`` **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's Environment File. @@ -1282,37 +1422,41 @@ VIP Assignment, External Networks, Supported by Automation :id: R-35735 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca When the VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' is attaching to an external network, - and an IPv6 Virtual IP (VIP) address is assigned via ONAP automation - using the property 'allowed_address_pairs' map property 'ip_address', - the parameter name **MUST** follow the naming convention + ``OS::Neutron::Port`` is attaching to an external network (per the + ONAP definition, see Requirement R-57424), + and an IPv6 Virtual IP (VIP) + address is assigned via ONAP automation + using the property ``allowed_address_pairs`` + map property ``ip_address``, + the parameter name **MUST** follow the + naming convention - * '{vm-type}_{network-role}_v6_floating_ip' + * ``{vm-type}_{network-role}_v6_floating_ip`` where - * '{vm-type}' is the {vm-type} associated with the OS::Nova::Server - * '{network-role}' is the {network-role} of the external network + * ``{vm-type}`` is the {vm-type} associated with the + OS::Nova::Server + * ``{network-role}`` is the {network-role} of the external + network - And the parameter **MUST** be declared as type 'string'. + And the parameter **MUST** be declared as type ``string``. .. req:: :id: R-83418 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Neutron::Port' property 'allowed_address_pairs' - map property 'ip_address' parameter - '{vm-type}_{network-role}_floating_v6_ip' + ``OS::Neutron::Port`` property ``allowed_address_pairs`` + map property ``ip_address`` parameter + ``{vm-type}_{network-role}_floating_v6_ip`` **MUST NOT** be enumerated in the VNF's Heat Orchestration Template's Environment File. @@ -1332,31 +1476,29 @@ addresses that are mapped to specific VM ports. In that case, the individual VMs are not even aware of the public IPs, and all assignment of public IPs to VMs is via OpenStack commands. ONAP does not support Neutron-style Floating IPs. That is, ONAP does not support the -resources 'OS::Neutron::FloatingIP' -and 'OS::Neutron::FloatingIPAssociation'. +resources ``OS::Neutron::FloatingIP`` +and ``OS::Neutron::FloatingIPAssociation``. .. req:: :id: R-05257 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's **MUST NOT** - contain the Resource 'OS::Neutron::FloatingIP'. + contain the Resource ``OS::Neutron::FloatingIP``. .. req:: :id: R-76449 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's **MUST NOT** - contain the Resource 'OS::Neutron::FloatingIPAssociation'. + contain the Resource ``OS::Neutron::FloatingIPAssociation``. The Floating IP functions as a NAT. They are allocated within Openstack, and always "terminate" within the Openstack infrastructure. @@ -1367,10 +1509,10 @@ port. The VM never sees or knows about the Openstack Floating IP. The process to use is: - User allocates a floating IP from the Openstack pool. - - User 'attaches' that floating IP to one of the VM ports. + - User ‘attaches’ that floating IP to one of the VM ports. If there is a high-availability VNF that wants to "float" the IP to a -different VM, it requires a Neutron command to request Openstack to 'attach' +different VM, it requires a Neutron command to request Openstack to ‘attach’ the floating IP to a different VM port. The pool of such addresses is managed by Openstack infrastructure. Users cannot create new ones, they can only choose from those in the pool. @@ -1392,7 +1534,7 @@ additional IPs. Floating IPs are not used in ONAP due to the NAT-ting nature of the IPs, the inability to reserve such IPs for specific use, the need to manage them via Openstack commands (i.e. a HA VNF would require direct access to -Openstack to 'float' such an IP from one VM to another). +Openstack to ‘float’ such an IP from one VM to another). *Example:* @@ -1427,16 +1569,15 @@ an oam network and the {vm-type} has been defined as db for database. allowed_address_pairs: [ { "ip_address": {get_param: db_oam_floating_ip}}] - VIP Assignment, External Networks, Additional Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The parameter {'vm-type}_{network-role}_floating_ip' allows for only one -allowed address pair IPv4 address per '{vm-type}' and '{network-role}' +The parameter ``{vm-type}_{network-role}_floating_ip`` allows for only one +allowed address pair IPv4 address per ``{vm-type}`` and ``{network-role}`` combination. -The parameter '{vm-type}_{network-role}_floating_v6_ip' allows for only one -allowed address pair IPv6 address per '{vm-type}' and '{network-role}' +The parameter ``{vm-type}_{network-role}_floating_v6_ip`` allows for only one +allowed address pair IPv6 address per ``{vm-type}`` and ``{network-role}`` combination. If there is a need for multiple allowed address pair IPs for a given @@ -1446,10 +1587,10 @@ options. **Option One** If there is a need for multiple allowed address pair IPs for a given -'{vm-type}' and '{network-role}' combination within a VNF, then the -parameter names defined for the Property 'fixed_ips' Map Property -'ip_address' should be used or the Property 'allowed_address_pairs' -Map Property 'ip_address'. The +``{vm-type}`` and ``{network-role}`` combination within a VNF, then the +parameter names defined for the Property ``fixed_ips`` Map Property +``ip_address`` should be used or the Property ``allowed_address_pairs`` +Map Property ``ip_address``. The parameter names are provided in the table below. .. csv-table:: **Table 5 OS::Neutron::Port Property allowed_address_pairs map property ip_address Parameter Naming Convention** @@ -1548,7 +1689,7 @@ the CDL and then the VIPs as shown in the examples above. **Option Two** If there is a need for multiple allowed address pair IPs for a given -'{vm-type}' and '{network-role}' combination within a VNF, then the +``{vm-type}`` and ``{network-role}`` combination within a VNF, then the parameter names defined for the table below can be used. **Resource OS::Neutron::Port** @@ -1567,7 +1708,7 @@ Table 6: Multiple allowed_address_pairs Option 2A If there is a need for multiple allowed address pair IPs for a given -'{vm-type}' and '{network-role}' combination within a VNF and the need to +``{vm-type}`` and ``{network-role}`` combination within a VNF and the need to differentiate the VIPs for different traffic types (e.g., 911 VIP, fail-over VIP), then the parameter names defined for the table below can be used. @@ -1590,7 +1731,7 @@ Internal Networks ~~~~~~~~~~~~~~~~~~~~~~~ ONAP defines an internal network in relation to -the VNF and not with regard to the Network Cloud site. Internal +the VNF and not with regard to the cloud site. Internal networks may also be referred to as "intra-VNF" networks or "private" networks. An internal network only connects VMs in a single VNF. It must not connect to other VNFs or an external (to the cloud) gateway or an @@ -1598,34 +1739,36 @@ external (to the cloud) router. ONAP internal networks should be created in the base module. -As previously mentioned, -ports that connect to an internal network are assigned IP addresses -via one of two methods +As previously mentioned, ports that connect to an internal network are assigned +IP addresses via one of two methods * Method 1: Cloud assigned by OpenStack's DHCP Service * Method 2: Statically assigned. That is, predetermined by the VNF designer and are specified in the VNF's Heat Orchestration Template's Environment File -If Cloud assigned IP addressing is being used, output statements +If cloud assigned IP addressing is being used, output statements are created in the base module. If static assigned IP addressing is being used, the IP addresses are defined in the environment file. - * {vm-type}_int_{network-role}_floating_ip - * {vm-type}_int_{network-role}_floating_v6_ip + * ``{vm-type}_int_{network-role}_floating_ip`` + * ``{vm-type}_int_{network-role}_floating_v6_ip`` + + * ``{vm-type}_int_{network-role}_vip_{index}`` + * ``{vm-type}_int_{network-role}_vips`` + * ``{vm-type}_int_{network-role}_v6_vip_{index}`` + * ``{vm-type}_int_{network-role}_v6_vips`` + + + * ``{vm-type}_int_{network-role}_{vip_type}_vip`` + * ``{vm-type}_int_{network-role}_{vip_type}_vips`` + * ``{vm-type}_int_{network-role}_{vip_type}_v6_vip`` + * ``{vm-type}_int_{network-role}_{vip_type}_v6_vips`` - * {vm-type}_int_{network-role}_vip_{index} - * {vm-type}_int_{network-role}_vips - * {vm-type}_int_{network-role}_v6_vip_{index} - * {vm-type}_int_{network-role}_v6_vips - * {vm-type}_int_{network-role}_{vip_type}_vip - * {vm-type}_int_{network-role}_{vip_type}_vips - * {vm-type}_int_{network-role}_{vip_type}_v6_vip - * {vm-type}_int_{network-role}_{vip_type}_v6_vips *Example Parameter Definition* @@ -1640,14 +1783,19 @@ are defined in the environment file. type: string description: VIP for {vm-type} VMs on the int_{network-role} network + + allowed_address_pair IP Addresses Required in more than one module ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If the IP address {vm-type}_{network-role}_floating_ip and/or -{vm-type}_{network-role}_floating_v6_ip must be used in more than module in the -VNF, the parameter values must be defined as output values in the base -module with output names: {vm-type}_{network-role}_shared_vip or -{vm-type}_{network-role}_v6_shared_vip +If the IP address ``{vm-type}_{network-role}_floating_ip`` and/or +``{vm-type}_{network-role}_floating_v6_ip`` must be used in more than module +in the +VNF, the parameter values must be defined as output values in the base module +with +output names: ``{vm-type}_{network-role}_shared_vip`` or +``{vm-type}_{network-role}_v6_shared_vip``. + .. code-block:: yaml @@ -1662,7 +1810,7 @@ module with output names: {vm-type}_{network-role}_shared_vip or The output parameters must be defined as input parameter in the incremental modules that require the IP addresses. When defining the -allowed_address_pairs: in the OS::Neutron::Port, it should be as +``allowed_address_pairs`` in the ``OS::Neutron::Port``, it should be as follows: .. code-block:: yaml @@ -1674,54 +1822,56 @@ follows: Reserve Port Concept ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A "Reserve Port" is an OS::Neutron::Port that fixed_ips, ip_address +A "Reserve Port" is an ``OS::Neutron::Port`` that ``fixed_ips``, ip_address property is assigned one or more IP addresses that are used as Virtual IP (VIP) Addresses (i.e., allowed_address_pairs) on other ports. A "Reserve Port" is never attached to a Virtual Machine -(OS::Nova::Server). The reserve port ensures that the intended -allowed_address_pair IP address is not inadvertently assigned as a -fixed_ips to a OS::Neutron::Port that is attached OS::Nova::Server and +(``OS::Nova::Server``). The reserve port ensures that the intended +``allowed_address_pair`` IP address is not inadvertently assigned as a +fixed_ips to a ``OS::Neutron::Port`` that is attached ``OS::Nova::Server`` and thus causing routing issues. A VNF may have one or more "Reserve Ports". A reserve port maybe created in the base module or an incremental module. If created in the base module, parameters may be defined in the outputs: section of the base template so the IP Address assigned to the reserve port maybe assigned -to the allowed_address_pair property of an OS::Neutron::Port in one or +to the allowed_address_pair property of an ``OS::Neutron::Port`` in one or more incremental modules. The parameter name of the IP address used in the "Reserve Port" depends -on the allowed_address_pair "option" utilized by the VNF. +on the ``allowed_address_pair`` "option" utilized by the VNF. When creating a Reserve Port, if only one allowed_address_pair is configured on a port, then the parameter name depends upon the IP addresses type (IPv4 or IPv6) and network type (internal or external). The valid parameter names are: - * {vm-type}_{network-role}_floating_ip - * {vm-type}_{network-role}_floating_v6_ip - * {vm-type}_int_{network-role}_floating_ip - * {vm-type}_int_{network-role}_floating_v6_ip + * ``{vm-type}_{network-role}_floating_ip`` + * ``{vm-type}_{network-role}_floating_v6_ip`` + * ``{vm-type}_int_{network-role}_floating_ip`` + * ``{vm-type}_int_{network-role}_floating_v6_ip`` When creating a Reserve Port, if more than one (e.g., multiple) -allowed_address_pair is configured on a port, then the parameter name depends +``allowed_address_pair`` is configured on a port, then the parameter name +depends upon the IP addresses type (IPv4 or IPv6) and network type (internal or external) and the option being used. The valid parameter names are: - * {vm-type}_{network-role}_ip_{index} - * {vm-type}_{network-role}_ips - * {vm-type}_{network-role}_v6_ip_{index} - * {vm-type}_{network-role}_v6_ips - * {vm-type}_{network-role}_vip_{index} - * {vm-type}_{network-role}_vips - * {vm-type}_{network-role}_v6_vip_{index} - * {vm-type}_{network-role}_v6_vips - * {vm-type}_{network-role}_{vip-type}_vip - * {vm-type}_{network-role}_v6_{vip-type}_vip - * {vm-type}_{network-role}_{vip-type}_vips - * {vm-type}_{network-role}_v6_{vip-type}_vips + * ``{vm-type}_{network-role}_ip_{index}`` + * ``{vm-type}_{network-role}_ips`` + * ``{vm-type}_{network-role}_v6_ip_{index}`` + * ``{vm-type}_{network-role}_v6_ips`` + * ``{vm-type}_{network-role}_vip_{index}`` + * ``{vm-type}_{network-role}_vips`` + * ``{vm-type}_{network-role}_v6_vip_{index}`` + * ``{vm-type}_{network-role}_v6_vips`` + * ``{vm-type}_{network-role}_{vip-type}_vip`` + * ``{vm-type}_{network-role}_v6_{vip-type}_vip`` + * ``{vm-type}_{network-role}_{vip-type}_vips`` + * ``{vm-type}_{network-role}_v6_{vip-type}_vips`` + *Example IPv4 Reserve Port Definition: one allowed_address_pair configured on a port* @@ -1746,4 +1896,3 @@ configured on a port* network: { get_param: {network-role}_net_id } fixed_ips: - ip_address : { get_param: {vm-type}_{network-role}_floating_v6_ip } - diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Metadata Parameters.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Metadata Parameters.rst index adf3756..d86279d 100644 --- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Metadata Parameters.rst +++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Nova Metadata Parameters.rst @@ -7,80 +7,93 @@ Resource: OS::Nova::Server - Metadata Parameters -------------------------------------------------------------------------------- -The OS::Nova::Server Resource property metadata is an optional -OpenStack property. -The table below summarizes the mandatory and optional metadata -supported by ONAP. - +The ``OS::Nova::Server`` resource property ``metadata`` is an optional OpenStack +property. +Table 2 summarizes the mandatory and optional ``metadata`` supported by ONAP. The sections that follow provides the requirements associated with each -metadata parameter. +``metadata`` parameter. + -.. csv-table:: **Table 5 OS::Nova::Server Mandatory and Optional Metadata** - :header: Metadata Parameter Name, Parameter Type, Required, Parameter Value Provided to Heat +.. csv-table:: **Table 2 OS::Nova::Server Mandatory and Optional Metadata** + :header: Resource, Property, Parameter Name, Parameter Type, Required, Parameter Value Provided to Heat :align: center :widths: auto - vnf_id, string, **MUST**, ONAP - vf_module_id, string, **MUST**, ONAP - vnf_name, string, **MUST**, ONAP - vf_module_name, string, **SHOULD**, ONAP - vm_role, string, **MAY**, YAML or Environment File - vf_module_index, string, **MAY**, ONAP - workload_context, string, **SHOULD**, ONAP - environment_context, string, **SHOULD**, ONAP + OS::Nova::Server, metadata, vnf_id, string, **MUST**, ONAP + OS::Nova::Server, metadata, vf_module_id, string, **MUST**, ONAP + OS::Nova::Server, metadata, vnf_name, string, **MUST**, ONAP + OS::Nova::Server, metadata, vf_module_name, string, **SHOULD**, ONAP + OS::Nova::Server, metadata, vm_role, string, **MAY**, YAML or Environment File + OS::Nova::Server, metadata, vf_module_index, number, **MAY**, ONAP + OS::Nova::Server, metadata, workload_context, string, **MUST**, ONAP + OS::Nova::Server, metadata, environment_context, string, **MUST**, ONAP vnf_id ^^^^^^^^^ -The OS::Nova::Server Resource metadata map value parameter 'vnf_id' -is an ONAP generated UUID that identifies the VNF. The value +The ``OS::Nova::Server`` resource property ``metadata`` key/value pair +``vnf_id`` is an ONAP generated UUID that identifies the VNF. The value is provided by ONAP to the VNF's Heat Orchestration Template at orchestration time. - .. req:: :id: R-37437 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource **MUST** contain the metadata map value parameter 'vnf_id'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` + resource property ``metadata`` **MUST** + contain the key/value pair ``vnf_id``. .. req:: :id: R-07507 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_id' **MUST** be declared - as type: 'string'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` + resource property + ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST** + be declared as type: ``string``. .. req:: :id: R-55218 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_id' **MUST NOT** have - parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` + resource property + ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-20856 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_id' **MUST NOT** be - enumerated in the Heat Orchestration Template's environment file. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` + resource property + ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT** + be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-44491 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_id' is passed into a - Nested YAML file, the parameter name 'vnf_id' **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource + property + ``metadata`` key/value pair ``vnf_id`` is passed into a Nested YAML + file, the key/value pair name ``vnf_id`` **MUST NOT** change. *Example 'vnf_id' Parameter Definition* @@ -95,58 +108,66 @@ Template at orchestration time. vf_module_id ^^^^^^^^^^^^^^^^^^^^ -The OS::Nova::Server Resource metadata map value parameter 'vf_module_id' +The OS::Nova::Server Resource ``metadata`` map value parameter ``vf_module_id`` is an ONAP generated UUID that identifies the VF Module (e.g., Heat Orchestration Template). The value is provided by ONAP to the VNF's Heat Orchestration Template at orchestration time. - .. req:: :id: R-71493 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource **MUST** contain the metadata map value parameter - 'vf_module_id'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MUST** + contain the ``metadata`` map value parameter ``vf_module_id``. .. req:: :id: R-82134 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_id' **MUST** - be declared as type: 'string'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_id`` **MUST** + be declared as type: ``string``. .. req:: :id: R-98374 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_id' **MUST NOT** - have parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_id`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-72871 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_id' **MUST NOT** + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_id`` **MUST NOT** be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-86237 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_id' is passed - into a Nested YAML file, the parameter name 'vf_module_id' - **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_id`` is passed into a + Nested YAML + file, the parameter name ``vf_module_id`` **MUST NOT** change. *Example 'vf_module_id' Parameter Definition* @@ -162,58 +183,65 @@ Template at orchestration time. vnf_name ^^^^^^^^^ -The OS::Nova::Server Resource metadata map value parameter 'vnf_name' -is the ONAP generated alphanumeric name of the deployed VNF instance. +The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name`` +is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance. The value is provided by ONAP to the VNF's Heat Orchestration Template at orchestration time. -The parameter must be declared as type: string - .. req:: :id: R-72483 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource **MUST** contain the metadata map value parameter - 'vnf_name'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MUST** + contain the ``metadata`` map value parameter ``vnf_name``. .. req:: :id: R-62428 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_name' **MUST** be - declared as type: 'string'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vnf_name`` **MUST** + be declared as type: ``string``. .. req:: :id: R-44318 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_name' **MUST NOT** have - parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vnf_name`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-36542 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_name' **MUST NOT** be - enumerated in the Heat Orchestration Template's environment file. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vnf_name`` **MUST NOT** + be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-16576 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_name' is passed into a - Nested YAML file, the parameter name 'vnf_name' **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vnf_name`` is passed into a Nested YAML + file, the parameter name ``vnf_name`` **MUST NOT** change. *Example 'vnf_name' Parameter Definition* @@ -228,61 +256,69 @@ The parameter must be declared as type: string vf_module_name ^^^^^^^^^^^^^^^^^^ -The OS::Nova::Server Resource metadata map value parameter 'vf_module_name' -is the deployment name of the heat stack created (e.g., <STACK_NAME>) from the +The ``OS::Nova::Server`` Resource ``metadata`` map value parameter +``vf_module_name`` +is the deployment name of the heat stack created (e.g., ``<STACK_NAME>``) +from the VNF's Heat Orchestration template -in the command 'Heat stack-create' -(e.g., 'Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>'). -The 'vf_module_name' (e.g., <STACK_NAME> is specified as +in the command ``Heat stack-create`` +(e.g., ``Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>``). +The ``vf_module_name`` (e.g., ``<STACK_NAME>`` is specified as part of the orchestration process. - .. req:: :id: R-68023 :target: VNF :keyword: SHOULD + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource **SHOULD** contain the metadata map value parameter - 'vf_module_name'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + **SHOULD** + contain the ``metadata`` map value parameter ``vf_module_name``. .. req:: :id: R-39067 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_name' **MUST** - be declared as type: 'string'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_name`` **MUST** + be declared as type: ``string``. .. req:: :id: R-15480 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_name' - **MUST NOT** have parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_name`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-80374 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_name' - **MUST NOT** be enumerated in the Heat Orchestration Template's - environment file. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_name`` **MUST NOT** + be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-49177 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_name' is passed - into a Nested YAML file, the parameter name 'vf_module_name' - **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + metadata map value parameter ``vf_module_name`` is passed into a Nested YAML + file, the parameter name ``vf_module_name`` **MUST NOT** change. *Example 'vf_module_name' Parameter Definition* @@ -297,74 +333,85 @@ part of the orchestration process. vm_role ^^^^^^^^^ -The OS::Nova::Server Resource metadata map value parameter 'vm-role' -is a metadata tag that describes the role of the Virtual Machine. -The 'vm_role' is stored in ONAP's A&AI module and is +The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm-role`` +is a ``metadata`` tag that describes the role of the Virtual Machine. +The ``vm_role`` is stored in ONAP’s A&AI module and is available for use by other ONAP components and/or north bound systems. - .. req:: :id: R-85328 :target: VNF :keyword: MAY + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource **MAY** contain the metadata map value parameter 'vm_role'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MAY** + contain the ``metadata`` map value parameter ``vm_role``. .. req:: :id: R-95430 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vm_role' **MUST** be - declared as type: 'string'. + A VNF's Heat Orchestration Template's OS::Nova::Server Resource + ``metadata`` map value parameter ``vm_role`` **MUST** + be declared as type: ``string``. .. req:: :id: R-67597 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vm_role' **MUST NOT** have - parameter contraints defined. - + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vm_role`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-46823 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vnf_name' **MUST** be - either + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vm_role`` **MUST** + be either + + * enumerated in the VNF's Heat Orchestration Template's environment + file. - - enumerated in the VNF's Heat Orchestration - Template's environment file. + * hard coded in the VNF's + Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` property. - - hard coded in the VNF's Heat Orchestration - Template's OS::Nova::Resource metadata property. -Defining the 'vm_role' as the '{vm-type}' is a recommended convention +Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention .. req:: :id: R-86476 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vm_role' value **MUST** only - contain alphanumeric characters and underscores '_'. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vm_role`` value **MUST** + only contain alphanumeric characters and underscores '_'. .. req:: :id: R-70757 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vm_role' is passed into a - Nested YAML file, the parameter name 'vm_role' **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vm_role`` is passed into a Nested YAML + file, the parameter name ``vm_role`` **MUST NOT** change. *Example 'vm_role' Parameter Definition* @@ -407,10 +454,10 @@ and retrieved via 'get_param'* Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The example below depicts part of a Heat Orchestration Template -that uses the five of the OS::Nova::Server metadata parameter -discussed in this section. The {vm-type} has been defined as lb -for load balancer. +The example below depicts part of a Heat Orchestration Template that +uses the five of the ``OS::Nova::Server`` resource +``metadata`` map value parameters discussed in this +section. The ``{vm-type}`` has been defined as ``lb`` for load balancer. .. code-block:: yaml @@ -454,81 +501,92 @@ vf_module_index :id: R-50816 :target: VNF :keyword: MAY + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource **MAY** contain the metadata map value parameter - 'vf_module_index'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server Resource`` **MAY** + contain the metadata map value parameter ``vf_module_index``. .. req:: :id: R-54340 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_index' **MUST** be - declared as type: 'number'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_index`` **MUST** + be declared as type: ``number``. .. req:: :id: R-09811 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_index' **MUST NOT** - have parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_index`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-37039 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_index' **MUST NOT** + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_index`` **MUST NOT** be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-22441 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf\_module\_index' is passed - into a Nested YAML file, the parameter name 'vf\_module\_index' - **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_index`` is passed into a + Nested YAML + file, the parameter name ``vf_module_index`` **MUST NOT** change. .. req:: :id: R-55306 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'vf_module_index' **MUST NOT** be - used in a VNF's Volume Template; it is not supported. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``vf_module_index`` **MUST NOT** + be used in a + VNF's Volume Template; it is not supported. -The vf_module_index parameter indicates which instance of the module is being -deployed into the VNF. +The ``vf_module_index`` parameter indicates which instance of the module is +being deployed into the VNF. This parameter may be used in cases where multiple instances of the same incremental module may be instantiated for scaling purposes. The index can be used in the Heat Orchestration Template for indexing into a pseudo-constant array parameter when unique values are required for each module instance, e.g., for fixed private IP addresses on VM types. -The vf_module_index will start at 0 for the first instance of a module +The ``vf_module_index`` will start at 0 for the first instance of a module type. Subsequent instances of the same module type will receive the lowest unused index. This means that indexes will be reused if a module is deleted and re-added. As an example, if three copies of a module are -deployed with vf_module_index values of 0, 1, and 2 then subsequently +deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently the second one is deleted (index 1), and then re-added, index 1 will be reused. *Example* -In this example, the {vm-type} has been defined as oam_vm to represent +In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent an OAM VM. An incremental heat module is used to deploy the OAM VM. The OAM VM attaches to an internal control network which has a -{network-role} of ctrl. A maximum of four OAM VMs can be deployed. The +``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The environment file contains the four IP addresses that each successive OAM -VM will be assigned. The vf_module_index is used as the index to +VM will be assigned. The ``vf_module_index`` is used as the index to determine the IP assignment. Environment File @@ -542,37 +600,35 @@ YAML File .. code-block:: yaml - parameters: - vf_module_index: - type: number - description: Unique index for this VNF Module instance - oam_vm_name_0: - type: string - description: VM Name for lb VM 0 - int_ctrl_net_id: - type: string - description: Neutron UUID for the internal control network - oam_vm_int_ctrl_ips: - type: comma_delimited_list - description: Fixed IP assignments for oam VMs on the internal control - network - resources: - oam_vm_server_0: - type: OS::Nova::Server - properties: - name: { get_param: oam_vm_name_0 } - networks: - port: { get_resource: oam_vm_0_int_ctrl_port_0 } - - . . . - - metadata: - vf_module_index: { get_param: vf_module_index } - oam_vm_0_int_ctrl_port_0: - type: OS::Neutron::Port - properties: - network: { get_param: int_ctrl_net_id } - fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param, vf_module_index}]}}] + parameters: + vf_module_index: + type: number + description: Unique index for this VNF Module instance + oam_vm_name_0: + type: string + description: VM Name for lb VM 0 + int_ctrl_net_id: + type: string + description: Neutron UUID for the internal control network + oam_vm_int_ctrl_ips: + type: comma_delimited_list + description: Fixed IP assignments for oam VMs on the internal control + network + resources: + oam_vm_server_0: + type: OS::Nova::Server + properties: + name: { get_param: oam_vm_name_0 } + networks: + - port: { get_resource: oam_vm_0_int_ctrl_port_0 } + # . . . + metadata: + vf_module_index: { get_param: vf_module_index } + oam_vm_0_int_ctrl_port_0: + type: OS::Neutron::Port + properties: + network: { get_param: int_ctrl_net_id } + fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}] workload_context ^^^^^^^^^^^^^^^^^^^^^ @@ -581,6 +637,7 @@ workload_context :id: R-47061 :target: VNF :keyword: SHOULD + :updated: casablanca A VNF's Heat Orchestration Template's OS::Nova::Server Resource **SHOULD** contain the metadata map value parameter @@ -590,38 +647,46 @@ workload_context :id: R-74978 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'workload_context' **MUST** be - declared as type: 'string'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``workload_context`` **MUST** + be declared as type: ``string``. .. req:: :id: R-34055 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'workload_context' **MUST NOT** - have parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``workload_context`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-02691 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'workload_context' **MUST NOT** + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``workload_context`` **MUST NOT** be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-75202 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'workload_context' is passed - into a Nested YAML file, the parameter name 'workload_context' - **MUST NOT** change. + If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``workload_context`` is passed into a + Nested YAML + file, the parameter name ``workload_context`` **MUST NOT** change. The 'workload\_context' parameter value will be chosen by the Service Model Distribution context client in VID and will be supplied to the @@ -665,6 +730,7 @@ environment_context :id: R-88536 :target: VNF :keyword: SHOULD + :updated: casablanca A VNF's Heat Orchestration Template's OS::Nova::Server Resource **SHOULD** contain the metadata map value parameter @@ -674,38 +740,46 @@ environment_context :id: R-20308 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'environment_context' **MUST** - be declared as type: 'string'. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``environment_context`` **MUST** + be declared as type: ``string``. .. req:: :id: R-56183 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'environment_context' **MUST NOT** - have parameter contraints defined. + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``environment_context`` **MUST NOT** + have parameter constraints defined. .. req:: :id: R-13194 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's OS::Nova::Server - Resource metadata map value parameter 'environment_context' **MUST NOT** + A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource + ``metadata`` map value parameter ``environment_context`` **MUST NOT** be enumerated in the Heat Orchestration Template's environment file. .. req:: :id: R-62954 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration 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. + If a VNF's Heat Orchestration 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. The 'environment_context' parameter value will be defined by the service designer as part of the service model during the SDC 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 31e66b8..6c890a5 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 @@ -6,31 +6,31 @@ Resource: OS::Nova::Server - Parameters ----------------------------------------------------------------------- -The resource OS::Nova::Server manages the running virtual machine (VM) -instance within an OpenStack cloud. +The OS::Nova::Server resource manages the running virtual machine (VM) +instance within an OpenStack cloud. (See +https://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Nova::Server.) -(See https://docs.openstack.org/heat/latest/template_guide/openstack.html#OS::Nova::Server.) +The following four properties of the ``OS::Nova::Server`` +resource must follow an +ONAP specified naming convention. -The following four properties of the OS::Nova::Server must follow -the ONAP parameter naming convention. The four properties are: +1. ``image`` -1. image +2. ``flavor`` -2. flavor +3. ``name`` -3. name +4. ``availability_zone`` -4. availability_zone +Requirement R-01455 defines how the ``{vm-type]`` is defined. -Requirement :need:`R-01455` defines how the '{vm-type}' is defined. - -Requirement :need:`R-82481` defines how the '{vm-type}' is used. +Requirement R-82481 defines how the ``{vm-type}`` is used. The table below provides a summary. The sections that follow provides the detailed requirements. -.. csv-table:: **Table 4 OS::Nova::Server Resource Property Parameter Naming Convention** - :header: Property Name,Parameter Type,Parameter Name,Parameter Value Provided to Heat +.. csv-table:: **Table 1 OS::Nova::Server Resource Property Parameter Naming Convention** + :header: Resource,Property,Parameter Type,Parameter Name,Parameter Value Provided to Heat :align: center :widths: auto @@ -50,38 +50,47 @@ Property: image :id: R-71152 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'image' parameter **MUST** be declared as - type: 'string'. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``image`` parameter **MUST** be declared as type: ``string``. .. req:: :id: R-58670 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'image' parameter name **MUST** follow the - naming convention '{vm-type}_image_name'. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``image`` parameter name **MUST** follow the naming convention + ``{vm-type}_image_name``. .. req:: :id: R-91125 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'image' parameter **MUST** be enumerated in - the Heat Orchestration Template's Environment File and a value **MUST** be - assigned. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``image`` parameter **MUST** be enumerated in the Heat Orchestration + Template's Environment File and a value **MUST** be assigned. .. req:: :id: R-57282 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - Each VNF's Heat Orchestration Template's '{vm-type}' - **MUST** have a unique parameter name for the 'OS::Nova::Server' - property 'image' even if more than one {vm-type} shares the same image. + Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** + have a unique parameter name for the ``OS::Nova::Server`` property + ``image`` even if more than one ``{vm-type}`` shares the same image. *Example Parameter Definition* @@ -102,38 +111,46 @@ Property: flavor :id: R-50436 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'flavor' parameter **MUST** be declared as - type: 'string'. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``flavor`` parameter **MUST** be declared as type: ``string``. .. req:: :id: R-45188 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'flavor' parameter name **MUST** follow the - naming convention '{vm-type}_flavor_name'. + The VNF's Heat Orchestration Template's Resource 'OS::Nova::Server' property + ``flavor`` parameter name **MUST** follow the naming convention + ``{vm-type}_flavor_name``. .. req:: :id: R-69431 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'flavor' parameter **MUST** be enumerated in the - Heat Orchestration Template's Environment File and a value **MUST** be - assigned. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``flavor`` parameter **MUST** be enumerated in the Heat Orchestration + Template's Environment File and a value **MUST** be assigned. .. req:: :id: R-40499 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - Each VNF's Heat Orchestration Template's '{vm-type}' **MUST** - have a unique parameter name for the 'OS::Nova::Server' property - 'flavor' even if more than one {vm-type} shares the same flavor. + Each VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** + have a unique parameter name for the ``OS::Nova::Server`` property + ``flavor`` even if more than one ``{vm-type}`` shares the same flavor. *Example Parameter Definition* @@ -152,64 +169,79 @@ Property: Name :id: R-51430 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'name' parameter **MUST** be declared as - either type 'string' or type 'comma\_delimited\_list". + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``name`` parameter **MUST** be declared as either type ``string`` + or type ``comma_delimited_list``. .. req:: :id: R-54171 :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', + When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property ``name`` parameter is defined as a ``string``, the parameter name **MUST** follow the naming convention - '{vm-type}\_name\_{index}', where {index} is a numeric value that starts - at zero and increments by one. + ``{vm-type}_name_{index}``, where ``{index}`` is a numeric + value that starts at + 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 declared for each 'OS::Nova::Server' resource - associated with the '{vm-type}'. + 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 + :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', the parameter name **MUST** follow the naming - convention '{vm-type}_names'. + When the VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property ``name`` parameter is defined as a ``comma_delimited_list``, + the parameter name **MUST** follow the naming convention + ``{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}'. + 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 + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'name' parameter **MUST NOT** be enumerated - in the Heat Orchestration Template's Environment File. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``name`` parameter **MUST NOT** be enumerated in the Heat Orchestration + Template's Environment File. If a VNF's Heat Orchestration Template's contains more than three -OS::Nova::Server resources of a given {vm-type}, the comma\_delimited\_list -form of the parameter name (i.e., '{vm-type}\_names') should be used to +OS::Nova::Server resources of a given ``{vm-type}``, the comma_delimited_list +form of the parameter name (i.e., ``{vm-type}_names``) should be used to minimize the number of unique parameters defined in the template. @@ -290,16 +322,15 @@ Contrail Issue with Values for OS::Nova::Server Property Name :id: R-44271 :target: VNF :keyword: SHOULD NOT + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'name' parameter value **SHOULD NOT** - contain special characters since the Contrail GUI has a limitation - displaying special characters. - -However, if special characters must be used, the only special characters -supported are: + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``name`` parameter value **SHOULD NOT** contain special characters + since the Contrail GUI has a limitation displaying special characters. --- \" ! $ ' (\ \ ) = ~ ^ | @ ` { } [ ] > , . _ + However, if special characters must be used, the only special characters + supported are: --- \" ! $ ' (\ \ ) = ~ ^ | @ ` { } [ ] > , . _ Property: availability_zone @@ -310,33 +341,42 @@ Property: availability_zone :id: R-98450 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'availability\_zone' parameter name - **MUST** follow the naming convention 'availability\_zone\_{index}' - where the '{index}' **MUST** start at zero and increment by one. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``availability_zone`` parameter name **MUST** follow the naming convention + ``availability_zone_{index}`` where the ``{index}`` + **MUST** start at zero and + increment by one. .. req:: :id: R-23311 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'availability_zone' parameter **MUST** - be declared as type: 'string'. - -The parameter must not be declared as type 'comma\_delimited\_list', -ONAP does not support it. + ``OS::Nova::Server`` property + ``availability_zone`` parameter **MUST** be declared as type: ``string``. +The parameter must not be declared as type ``comma_delimited_list``, ONAP does +not support it. .. req:: :id: R-59568 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - The VNF's Heat Orchestration Template's Resource - 'OS::Nova::Server' property 'availability_zone' parameter **MUST NOT** - be enumerated in the Heat Orchestration Template's Environment File. + The VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` + property + ``availability_zone`` parameter **MUST NOT** be enumerated in the Heat + Orchestration + Template's Environment File. Example Parameter Definition @@ -356,23 +396,25 @@ for the OS::Nova::Server resource property availability_zone. :id: R-01359 :target: VNF :keyword: MAY + :updated: casablanca - A VNF's Heat Orchstration Template that contains an - 'OS::Nova:Server' Resource **MAY** define a parameter for the property - 'availability_zone' that is not utilized in any 'OS::Nova::Server' + A VNF's Heat Orchestration Template that contains an ``OS::Nova:Server`` + Resource **MAY** define a parameter for the property + ``availability_zone`` that is not utilized in any ``OS::Nova::Server`` resources in the Heat Orchestration Template. Example ^^^^^^^^^^^ The example below depicts part of a Heat Orchestration Template that -uses the four OS::Nova::Server properties discussed in this section. +uses the four ``OS::Nova::Server`` properties discussed in this section. -In the Heat Orchestration Template below, four Virtual -Machines (OS::Nova::Server) are created: two dns servers with -{vm-type} set to "dns" and two oam servers with {vm-type} set to "oam". -Note that the parameter associated with the property name is a -comma_delimited_list for dns and a string for oam. +In the Heat Orchestration Template below, four Virtual Machines +(``OS::Nova::Server``) are created: two dns servers with ``{vm-type}`` set to +``dns`` and two oam servers with ``{vm-type}`` set to ``oam``. +Note that the parameter +associated with the property name is a ``comma_delimited_list`` for ``dns`` and +a string for ``oam``. .. code-block:: yaml @@ -464,19 +506,22 @@ Boot Options :id: R-99798 :target: VNF :keyword: MAY + :updated: casablanca A VNF's Heat Orchestration Template's Virtual Machine - (i.e., OS::Nova::Server Resource) **MAY** boot from an image or **MAY** - boot from a Cinder Volume. + (i.e., ``OS::Nova::Server`` resource) **MAY** boot from an image or + **MAY** boot from a Cinder Volume. .. req:: :id: R-83706 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When a VNF's Heat Orchestration Template's Virtual Machine - (i.e., 'OS::Nova::Server' Resource) boots from an image, the - 'OS::Nova::Server' resource property 'image' **MUST** be used. + (i.e., ``OS::Nova::Server`` resource) boots from an image, the + ``OS::Nova::Server`` resource property ``image`` **MUST** be used. The requirements associated with the 'image' property are detailed in `Property: image`_ @@ -486,11 +531,14 @@ the 'image' property are detailed in `Property: image`_ :id: R-69588 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When a VNF's Heat Orchestration Template's Virtual Machine - (i.e., 'OS::Nova::Server' Resource) boots from Cinder Volume, the - 'OS::Nova::Server' resource property 'block_device_mapping' or - 'block_device_mapping_v2' **MUST** be used. + (i.e., ``OS::Nova::Server`` Resource) boots from Cinder Volume, the + ``OS::Nova::Server`` resource property + ``block_device_mapping`` or ``block_device_mapping_v2`` + **MUST** be used. There are currently no heat guidelines associated with these two properties: diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/ONAP Output Parameter Names.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/ONAP Output Parameter Names.rst index d2330a6..48596ec 100644 --- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/ONAP Output Parameter Names.rst +++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/ONAP Output Parameter Names.rst @@ -20,13 +20,11 @@ convention. :id: R-97726 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Base Module Output - Parameter names **MUST** contain {vm-type} and/or {network-role} - when appropriate. + A VNF's Heat Orchestration Template's Base Module Output Parameter names + **MUST** contain ``{vm-type}`` and/or ``{network-role}`` when appropriate. ONAP Volume Template Output Parameters: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -35,12 +33,12 @@ ONAP Volume Template Output Parameters: :id: R-88524 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Volume Template - Output Parameter names **MUST** contain {vm-type} when appropriate. + Output Parameter names + **MUST** contain ``{vm-type}`` when appropriate. Predefined Output Parameters ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -64,43 +62,38 @@ or may be a single IP address assigned to one VM. :id: R-47874 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF **MAY** have - - * Only an IPv4 OAM Management IP Address - * Only an IPv6 OAM Management IP Address - * Both a IPv4 and IPv6 OAM Management IP Addresses + * Only an IPv4 OAM Management IP Address + * Only an IPv6 OAM Management IP Address + * Both a IPv4 and IPv6 OAM Management IP Addresses .. req:: :id: R-18683 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF has one IPv4 OAM Management IP Address and the IP Address needs to be inventoried in ONAP's A&AI database, an output parameter **MUST** be declared in only one of the VNF's Heat Orchestration Templates and the parameter **MUST** be named - 'oam_management_v4_address'. + ``oam_management_v4_address``. .. req:: :id: R-94669 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If a VNF has one IPv6 OAM Management IP Address and the - IP Address needs to be inventoried in ONAP's AAI + IP Address needs to be inventoried in ONAP's A&AI database, an output parameter **MUST** be declared in only one of the VNF's Heat Orchestration Templates and the parameter **MUST** be named - 'oam_management_v6_address'. + ``oam_management_v6_address``. The OAM Management IP Address maybe assigned either via * ONAP SDN-C @@ -110,25 +103,25 @@ The OAM Management IP Address maybe assigned either via :id: R-56287 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca If the VNF's OAM Management IP Address is assigned by ONAP SDN-C and assigned in the VNF's Heat Orchestration Template's via a heat resource - 'OS::Neutron::Port' property 'fixed_ips' map property - 'ip_adress' parameter (e.g., '{vm-type}_{network-role}_ip_{index}', - '{vm-type}_{network-role}_v6_ip_{index}') - and the OAM IP Address is required to be inventoried in ONAP AAI, + ``OS::Neutron::Port`` property ``fixed_ips`` map property + ``ip_adress`` parameter (e.g., ``{vm-type}_{network-role}_ip_{index}``, + ``{vm-type}_{network-role}_v6_ip_{index}``) + and the OAM IP Address is required to be inventoried in ONAP A&AI, then the parameter **MUST** be echoed in an output statement. -.. code-block:: yaml + .. code-block:: yaml + + outputs: + oam_management_v4_address: + value: {get_param: {vm-type}_{network-role}_ip_{index} } + oam_management_v6_address: + value: {get_param: {vm-type}_{network-role}_v6_ip_{index} } - outputs: - oam_management_v4_address: - value: {get_param: {vm-type}_{network-role}_ip_{index} } - oam_management_v6_address: - value: {get_param: {vm-type}_{network-role}_v6_ip_{index} } *Example: ONAP SDN-C Assigned IP Address echoed as oam_management_v4_address* @@ -169,19 +162,18 @@ oam_management_v4_address* oam_management_v4_address: value: {get_param: admin_oam_ip_0 } - .. req:: :id: R-48987 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found - - If the VNF's OAM Management IP Address is Cloud assigned and - and the OAM IP Address is required to be inventoried in ONAP AAI, - then the parameter **MUST** be obtained by the resource 'OS::Neutron::Port' - attribute 'ip_address'. + :validation_mode: static + :updated: casablanca + + If the VNF's OAM Management IP Address is cloud assigned and + and the OAM IP Address is required to be inventoried in ONAP A&AI, + then the parameter **MUST** be obtained by the + resource ``OS::Neutron::Port`` + attribute ``ip_address``. .. code-block:: yaml diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs.rst index e9635aa..9c6e3ab 100644 --- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs.rst +++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource IDs.rst @@ -3,15 +3,15 @@ .. Copyright 2017 AT&T Intellectual Property. All rights reserved. Resource IDs -------------------------------- +------------ -Requirement R-75141 states a VNF's Heat Orchestration Template's -resource name (i.e., <resource ID>) MUST only contain alphanumeric -characters and underscores ('_').* +Requirement R-75141 states a VNF’s Heat Orchestration Template’s resource +name (i.e., <resource ID>) MUST only contain alphanumeric characters and +underscores (‘_’).* -Requirement R-16447 states a VNF's <resource ID> MUST be unique -across all Heat Orchestration Templates and all HEAT Orchestration -Template Nested YAML files that are used to create the VNF. +Requirement R-16447 states a VNF’s <resource ID> MUST be unique across +all Heat Orchestration Templates and all HEAT Orchestration Template Nested +YAML files that are used to create the VNF. As stated previously, OpenStack requires the <resource ID> to be unique to the Heat Orchestration Template and not unique across all Heat @@ -23,14 +23,19 @@ Heat Orchestration Template resources are described in :ref:`resources`. :id: R-54517 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When a VNF's Heat Orchestration Template's resource is associated - with a single '{vm-type}', the Resource ID **MUST** contain the '{vm-type}'. + When a VNF's Heat Orchestration Template's resource is associated with + a single ``{vm-type}``, the Resource ID **MUST** contain the + ``{vm-type}``. .. req:: :id: R-96482 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca When a VNF's Heat Orchestration Template's resource is associated with a single external network, the Resource ID **MUST** contain the text @@ -40,75 +45,92 @@ Heat Orchestration Template resources are described in :ref:`resources`. :id: R-98138 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When a VNF's Heat Orchestration Template's resource is associated - with a single internal network, the Resource ID **MUST** contain the text - 'int\_{network-role}'. + When a VNF's Heat Orchestration Template's resource is associated with a + single internal network, the Resource ID **MUST** contain the text + ``int_{network-role}``. .. req:: :id: R-82115 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca + + When a VNF's Heat Orchestration Template's resource is associated with a + single ``{vm-type}`` + and a single external network, the Resource ID text **MUST** contain both + the ``{vm-type}`` + and the ``{network-role}`` + + - the ``{vm-type}`` **MUST** appear before the ``{network-role}`` and + **MUST** be separated by an underscore '_' - When a VNF's Heat Orchestration Template's resource is associated - with a single '{vm-type}' and a single external network, the Resource - ID text **MUST** contain both the '{vm-type}' and the '{network-role}' - - the '{vm-type}' **MUST** appear before the '{network-role}' and **MUST** - be separated by an underscore '_' + - e.g., ``{vm-type}_{network-role}``, ``{vm-type}_{index}_{network-role}`` - - e.g.,'{vm-type}\_{network-role}', '{vm-type}\_{index}\_{network-role}' - - note that an '{index}' value **MAY** separate the '{vm-type}' and the - '{network-role}' and when this occurs underscores **MUST** separate the - three values. + - note that an ``{index}`` value **MAY** separate the ``{vm-type}`` and the + ``{network-role}`` and when this occurs underscores **MUST** separate the + three values. (e.g., ``{vm-type}_{index}_{network-role}``). .. req:: :id: R-82551 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When a VNF's Heat Orchestration Template's resource is associated - with a single '{vm-type}' and a single internal network, the Resource ID - **MUST** contain both the '{vm-type}' and the 'int\_{network-role}' and + When a VNF's Heat Orchestration Template's resource is associated with a + single ``{vm-type}`` and a single internal network, the Resource ID **MUST** + contain both the ``{vm-type}`` and the ``int_{network-role}`` and - - the '{vm-type}' **MUST** appear before the 'int\_{network-role}' and + - the ``{vm-type}`` **MUST** appear before the ``int_{network-role}`` and **MUST** be separated by an underscore '_' - - e.g.,'{vm-type}\_int\_{network-role}', '{vm-type}_{index}\_int\_{network-role}' + - (e.g., ``{vm-type}_int_{network-role}``, + ``{vm-type}_{index}_int_{network-role}``) - - note that an '{index}' value **MAY** separate the '{vm-type}' and the - 'int\_{network-role}' and when this occurs underscores **MUST** separate - the three values. + - note that an ``{index}`` value **MAY** separate the + ``{vm-type}`` and the ``int_{network-role}`` and when this occurs + underscores **MUST** separate the three values. + (e.g., ``{vm-type}_{index}_int_{network-role}``). .. req:: :id: R-67793 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca When a VNF's Heat Orchestration Template's resource is associated - with more than one '{vm-type}' and/or more than one internal and/or - external network, the Resource ID **MUST NOT** contain the '{vm-type}' - and/or '{network-role}'/'int\_{network-role}'. It also should contain the - term 'shared' and/or contain text that identifies the VNF. + with more than one ``{vm-type}`` and/or more than one internal and/or + external network, the Resource ID **MUST** not contain the ``{vm-type}`` + and/or ``{network-role}``/``int_{network-role}``. It also should contain the + term ``shared`` and/or contain text that identifies the VNF. .. req:: :id: R-27970 :target: VNF :keyword: MAY + :updated: casablanca - When a VNF's Heat Orchestration Template's resource is associated - with more than one '{vm-type}' and/or more than one internal and/or - external network, the Resource ID **MAY** contain the term 'shared' - and/or **MAY** contain text that identifies the VNF. + When a VNF's Heat Orchestration Template's resource is associated with + more than one ``{vm-type}`` and/or more than one internal and/or external + network, the Resource ID **MAY** contain the term ``shared`` and/or **MAY** + contain text that identifies the VNF. .. req:: :id: R-11690 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When a VNF's Heat Orchestration Template's Resource ID contains - an {index} value (e.g. multiple VMs of same {vm-type}), the '{index}' + When a VNF's Heat Orchestration Template's Resource ID contains an + ``{index}`` value (e.g. multiple VMs of same ``{vm-type}``), the ``{index}`` **MUST** start at zero and increment by one. OpenStack Heat Resources Resource ID Naming Convention @@ -125,19 +147,20 @@ OS::Cinder::Volume :id: R-87004 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF's Heat Orchestration Template's Resource - OS::Cinder::Volume Resource ID **SHOULD** use the naming convention + ``OS::Cinder::Volume`` + Resource ID + **SHOULD** + use the naming convention - * {vm-type}_volume_{index} + * ``{vm-type}_volume_{index}`` where - * {vm-type} is the vm-type - * {index} starts at zero and increments by one + * ``{vm-type}`` is the vm-type + * ``{index}`` starts at zero and increments by one OS::Cinder::VolumeAttachment ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -146,19 +169,20 @@ OS::Cinder::VolumeAttachment :id: R-86497 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF's Heat Orchestration Template's Resource - OS::Cinder::VolumeAttachment Resource ID **SHOULD** use the naming convention + ``OS::Cinder::VolumeAttachment`` + Resource ID + **SHOULD** + use the naming convention - * {vm-type}_volume_attachment_{index} + * ``{vm-type}_volume_attachment_{index}`` where - * {vm-type} is the vm-type - * {index} starts at zero and increments by one + * ``{vm-type}`` is the vm-type + * ``{index}`` starts at zero and increments by one OS::Heat::CloudConfig ~~~~~~~~~~~~~~~~~~~~~~~ @@ -167,30 +191,27 @@ OS::Heat::CloudConfig :id: R-04747 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::Heat::CloudConfig' Resource ID **MUST** contain the '{vm-type}'. + A VNF's Heat Orchestration Template's Resource ``OS::Heat::CloudConfig`` + Resource ID **MUST** contain the ``{vm-type}``. .. req:: :id: R-20319 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource 'OS::Heat::CloudConfig' + A VNF's Heat Orchestration Template's Resource ``OS::Heat::CloudConfig`` Resource ID **MAY** use the naming convention - * {vm-type}_RCC + * ``{vm-type}_RCC`` where - * {vm-type} is the vm-type - * 'RCC' signifies that it is the Resource Cloud Config + * ``{vm-type}`` is the vm-type + * ``RCC`` signifies that it is the Resource Cloud Config OS::Heat::MultipartMime ~~~~~~~~~~~~~~~~~~~~~~~ @@ -200,30 +221,33 @@ OS::Heat::MultipartMime :id: R-30804 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::Heat::MultipartMime' Resource ID **MUST** contain the '{vm-type}'. + ``OS::Heat::MultipartMime`` + Resource ID + **MUST** + contain the ``{vm-type}``. .. req:: :id: R-18202 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::Heat::MultipartMime' Resource ID **MAY** use the naming convention + ``OS::Heat::MultipartMime`` + Resource ID + **MAY** + use the naming convention - * {vm-type}_RMM + * ``{vm-type}_RMM`` where - * {vm-type} is the vm-type - * 'RMM' signifies that it is the Resource Multipart Mime + * ``{vm-type}`` is the vm-type + * ``RMM`` signifies that it is the Resource Multipart Mime OS::Heat::ResourceGroup ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -235,24 +259,22 @@ that is is creating sub-interfaces. :id: R-64197 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Heat::ResourceGroup Resource ID that creates sub-interfaces **MUST** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Heat::ResourceGroup`` + Resource ID that creates sub-interfaces **MUST** use the naming convention - * {vm-type}_{vm-type_index}_subint_{network-role}_port_{port-index}_subinterfaces + * ``{vm-type}_{vm-type_index}_subint_{network-role}_port_{port-index}_subinterfaces`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the networks - that the sub-interfaces attach to - * {port-index} is the instance of the the port on the vm-type - attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the networks + that the sub-interfaces attach to + * ``{port-index}`` is the instance of the the port on the vm-type + attached to the network of ``{network-role}`` OS::Heat::SoftwareConfig ~~~~~~~~~~~~~~~~~~~~~~~~ @@ -261,30 +283,27 @@ OS::Heat::SoftwareConfig :id: R-08975 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::Heat::SoftwareConfig' Resource ID **MUST** contain the '{vm-type}'. + A VNF's Heat Orchestration Template's Resource ``OS::Heat::SoftwareConfig`` + Resource ID **MUST** contain the ``{vm-type}``. .. req:: :id: R-03656 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::Heat::SoftwareConfig' Resource ID **MAY** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Heat::SoftwareConfig`` + Resource ID **MAY** use the naming convention - * {vm-type}_RSC + * ``{vm-type}_RSC`` where - * {vm-type} is the vm-type - * 'RSC' signifies that it is the Resource Software Config + * ``{vm-type}`` is the vm-type + * ``RSC`` signifies that it is the Resource Software Config OS::Neutron::Net ~~~~~~~~~~~~~~~~ @@ -293,19 +312,18 @@ OS::Neutron::Net :id: R-25720 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::Net Resource ID **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Net`` + Resource ID **MUST** use the naming convention - * int_{network-role}_network + * ``int_{network-role}_network`` -VNF Heat Orchestration Templates can only create internal networks. -There is no {index} after {network-role} because {network-role} -**MUST** be unique in the scope of the VNF's -Heat Orchestration Template. + VNF Heat Orchestration Templates can only create internal networks. + There is no ``{index}`` after ``{network-role}`` because ``{network-role}`` + **MUST** be unique in the scope of the VNF's + Heat Orchestration Template. OS::Neutron::Port ~~~~~~~~~~~~~~~~~~ @@ -315,91 +333,87 @@ OS::Neutron::Port :id: R-20453 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::Port that is attaching to an external network Resource ID + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + that is attaching to an external network Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_{network-role}_port_{port-index} + * ``{vm-type}_{vm-type_index}_{network-role}_port_{port-index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {port-index} is the instance of the the port on the vm-type - attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{port-index}`` is the instance of the the port on the vm-type + attached to the network of ``{network-role}`` .. req:: :id: R-26351 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::Port that is attaching to an internal network Resource ID - **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + that is attaching to an internal network Resource ID **MUST** + use the naming convention - * {vm-type}_{vm-type_index}_int_{network-role}_port_{port-index} + * ``{vm-type}_{vm-type_index}_int_{network-role}_port_{port-index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {port-index} is the instance of the the port on the vm-type - attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{port-index}`` is the instance of the the port on the vm-type + attached to the network of ``{network-role}`` .. req:: :id: R-27469 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::Port that is creating a *Reserve Port* with an IPv4 address - Resource ID **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + that is creating a *Reserve Port* with an IPv4 address Resource ID **MUST** + use the naming convention - * reserve_port_{vm-type}_{network-role}_floating_ip_{index} + * ``reserve_port_{vm-type}_{network-role}_floating_ip_{index}`` where - * {vm-type} is the vm-type - * {network-role} is the network-role of the network - that the port is attached to - * {index} is the instance of the IPv4 *Reserve Port* - for the vm-type attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{index}`` is the instance of the IPv4 *Reserve Port* + for the vm-type attached to the network of ``{network-role}`` .. req:: :id: R-68520 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource OS::Neutron::Port - that is creating a *Reserve Port* with an IPv6 address Resource ID - **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Port`` + that is creating a *Reserve Port* with an IPv6 address Resource ID **MUST** + use the naming convention - * reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index} + * ``reserve_port_{vm-type}_{network-role}_floating_v6_ip_{index}`` where - * {vm-type} is the vm-type - * {network-role} is the network-role of the network - that the port is attached to - * {index} is the instance of the IPv6 *Reserve Port* - for the vm-type attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{index}`` is the instance of the IPv6 *Reserve Port* + for the vm-type attached to the network of ``{network-role}`` OS::Neutron::SecurityGroup ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -408,180 +422,158 @@ OS::Neutron::SecurityGroup :id: R-08775 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::SecurityGroup that is applicable to one {vm-type} and - more than one network (internal and/or external) Resource ID - **SHOULD** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` + that is applicable to one ``{vm-type}`` and more than one network (internal + and/or external) Resource ID **SHOULD** use the naming convention - * {vm-type}_security_group + * ``{vm-type}_security_group`` where - * {vm-type} is the vm-type + * ``{vm-type}`` is the vm-type .. req:: :id: R-03595 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::SecurityGroup that is applicable to more than - one {vm-type} and one external network Resource ID **SHOULD** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that + is applicable to more than one ``{vm-type}`` and one external network Resource ID + **SHOULD** use the naming convention - * {network-role}_security_group + * ``{network-role}_security_group`` where - * {network-role} is the network-role + * ``{network-role}`` is the network-role .. req:: :id: R-73213 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::SecurityGroup that is applicable to more than - one {vm-type} and one internal network Resource ID **SHOULD** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that + is applicable to more than one ``{vm-type}`` and one internal network Resource ID + **SHOULD** use the naming convention - * int_{network-role}_security_group + * ``int_{network-role}_security_group`` where - * {network-role} is the network-role + * ``{network-role}`` is the network-role .. req:: :id: R-17334 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::SecurityGroup that is applicable to one {vm-type} - and one external network Resource ID **SHOULD** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` + that is applicable to one ``{vm-type}`` and one external network Resource ID + **SHOULD** use the naming convention - * {vm-type}_{network-role}_security_group + * ``{vm-type}_{network-role}_security_group`` where - * {vm-type} is the vm-type - * {network-role} is the network-role + * ``{vm-type}`` is the vm-type + * ``{network-role}`` is the network-role .. req:: :id: R-14198 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::SecurityGroup that is applicable to one {vm-type} - and one internal network Resource ID **SHOULD** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that + is applicable to one {vm-type} and one internal network Resource ID **SHOULD** + use the naming convention - * {vm-type}_int_{network-role}_security_group + * ``{vm-type}_int_{network-role}_security_group`` where - * {vm-type} is the vm-type - * {network-role} is the network-role + * ``{vm-type}`` is the vm-type + * ``{network-role}`` is the network-role .. req:: :id: R-30005 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::SecurityGroup that is applicable to more than one - {vm-type} and more than one network (internal and/or external) - Resource ID **MAY** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::SecurityGroup`` that + is applicable to more than one ``{vm-type}`` and more than one network + (internal and/or external) Resource ID **MAY** + use the naming convention - * shared_security_group + * ``shared_security_group`` or - * {vnf-type}_security_group + * ``{vnf-type}_security_group`` where - * {vnf-type} describes the VNF + * ``{vnf-type}`` describes the VNF OS::Neutron::Subnet -~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~ .. req:: :id: R-59434 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Neutron::Subnet Resource ID **SHOULD** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Neutron::Subnet`` + Resource ID **SHOULD** use the naming convention - * int_{network-role}_subnet_{index} + * ``int_{network-role}_subnet_{index}`` where - * {network-role} is the network-role - * {index} is the {index} of the subnet of the network + * ``{network-role}`` is the network-role + * ``{index}`` is the ``{index}`` of the subnet of the network OS::Nova::Keypair -~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~ .. req:: :id: R-24997 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - OS::Nova::Keypair applies to one {vm-type} Resource ID **SHOULD** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to + one ``{vm-type}`` Resource ID **SHOULD** use the naming convention - * {vm-type}_keypair_{index} + * ``{vm-type}_keypair_{index}`` where - * {network-role} is the network-role - * {index} is the {index} of the keypair + * ``{network-role}`` is the network-role + * ``{index}`` is the ``{index}`` of the keypair .. req:: :id: R-65516 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource OS::Nova::Keypair - applies to all Virtual Machines in the the VNF, the Resource ID **SHOULD** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Nova::Keypair`` applies to + all Virtual Machines in the the VNF, the Resource ID **SHOULD** use the naming + convention - * {vnf-type}_keypair + * ``{vnf-type}_keypair`` where - * {vnf-type} describes the VNF + * ``{vnf-type}`` describes the VNF OS::Nova::Server ~~~~~~~~~~~~~~~~ @@ -590,19 +582,18 @@ OS::Nova::Server :id: R-29751 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource OS::Nova::Server - Resource ID **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Nova::Server`` Resource ID + **MUST** use the naming convention - * {vm-type}_server_{index} + * ``{vm-type}_server_{index}`` where - * {vm-type} is the vm-type - * {index} is the index + * ``{vm-type}`` is the vm-type + * ``{index}`` is the index OS::Nova::ServerGroup ~~~~~~~~~~~~~~~~~~~~~ @@ -611,26 +602,24 @@ OS::Nova::ServerGroup :id: R-15189 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource OS::Nova::ServerGroup - Resource ID **MAY** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::Nova::ServerGroup`` Resource ID + **MAY** use the naming convention - * {vm-type}_RSG + * ``{vm-type}_RSG`` or - * {vm-type}_Server_Grp + * ``{vm-type}_Server_Grp`` or - * {vm-type}_ServerGroup + * ``{vm-type}_ServerGroup`` or - * {vm-type}_servergroup + * ``{vm-type}_servergroup`` Contrail Heat Resources Resource ID Naming Convention ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -647,163 +636,150 @@ OS::ContrailV2::InstanceIp :id: R-53310 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InstanceIp' that is configuring an IPv4 Address - on a port attached to an external network Resource ID **MUST** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` + that is configuring an IPv4 Address on a port attached to an external network + Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index} + * ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_IP_{index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {vmi_index} is the instance of the the virtual machine interface - (e.g., port) on the vm-type - attached to the network of {network-role} - * 'IP' signifies that an IPv4 address is being configured - * {index} is the index of the IPv4 address + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the {vm-type} + * ``{network-role}`` is the network-role of the network that the port is attached to + * ``{vmi_index}`` is the instance of the the virtual machine interface + (e.g., port) on the vm-type attached to the network of {network-role} + * ``IP`` signifies that an IPv4 address is being configured + * ``{index}`` is the index of the IPv4 address .. req:: :id: R-46128 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InstanceIp' that is configuring an - IPv6 Address on a port attached to an external network + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` + that is configuring an IPv6 Address on a port attached to an external network Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index} + * ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {vmi_index} is the instance of the the virtual machine interface - (e.g., port) on the vm-type - attached to the network of {network-role} - * 'v6_IP' signifies that an IPv6 address is being configured - * {index} is the index of the IPv6 address + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{vmi_index}`` is the instance of the the virtual machine interface + (e.g., port) on the vm-type + attached to the network of {network-role} + * ``v6_IP`` signifies that an IPv6 address is being configured + * ``{index}`` is the index of the IPv6 address .. req:: :id: R-62187 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InstanceIp' that is configuring an - IPv4 Address on a port attached to an internal network + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` + that is configuring an IPv4 Address on a port attached to an internal network Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index} + * ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_IP_{index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {vmi_index} is the instance of the the virtual machine interface - (e.g., port) on the vm-type - attached to the network of {network-role} - * 'IP' signifies that an IPv4 address is being configured - * {index} is the index of the IPv4 address + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{vmi_index}`` is the instance of the the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` + * ``IP`` signifies that an IPv4 address is being configured + * ``{index}`` is the index of the IPv4 address .. req:: :id: R-87563 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InstanceIp' that is configuring an - IPv6 Address on a port attached to an internal network + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` + that is configuring an IPv6 Address on a port attached to an internal network Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index} + * ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {vmi_index} is the instance of the the virtual machine interface - (e.g., port) on the vm-type - attached to the network of {network-role} - * 'v6_IP' signifies that an IPv6 address is being configured - * {index} is the index of the IPv6 address + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{vmi_index}`` is the instance of the the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` + * ``v6_IP`` signifies that an IPv6 address is being configured + * ``{index}`` is the index of the IPv6 address .. req:: :id: R-20947 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InstanceIp' that is configuring an IPv4 Address - on a sub-interface port attached to a sub-interface network - Resource ID **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` + that is configuring an IPv4 Address on a sub-interface port attached to a + sub-interface network Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_IP_{index} + * ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_IP_{index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {vmi_index} is the instance of the the virtual machine interface - (e.g., port) on the vm-type - attached to the network of {network-role} - * 'IP' signifies that an IPv4 address is being configured - * {index} is the index of the IPv4 address + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{vmi_index}`` is the instance of the the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` + * ``IP`` signifies that an IPv4 address is being configured + * ``{index}`` is the index of the IPv4 address .. req:: :id: R-88540 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InstanceIp' that is configuring an IPv6 Address - on a sub-interface port attached to a sub-interface network - Resource ID **MUST** use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::InstanceIp`` + that is configuring an IPv6 Address on a sub-interface port attached to a + sub-interface network Resource ID **MUST** + use the naming convention - * {vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_v6_IP_{index} + * ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}_v6_IP_{index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port is attached to - * {vmi_index} is the instance of the the virtual machine interface - (e.g., port) on the vm-type - attached to the network of {network-role} - * 'v6_IP' signifies that an IPv6 address is being configured - * {index} is the index of the IPv6 address + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port is attached to + * ``{vmi_index}`` is the instance of the the virtual machine interface + (e.g., port) on the vm-type + attached to the network of ``{network-role}`` + * ``v6_IP`` signifies that an IPv6 address is being configured + * ``{index}`` is the index of the IPv6 address OS::ContrailV2::InterfaceRouteTable ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -812,32 +788,31 @@ OS::ContrailV2::InterfaceRouteTable :id: R-81214 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InterfaceRouteTable' Resource ID **MUST** - contain the '{network-role}'. + ``OS::ContrailV2::InterfaceRouteTable`` + Resource ID + **MUST** + contain the ``{network-role}``. .. req:: :id: R-28189 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::InterfaceRouteTable' Resource ID **MAY** - use the naming convention + ``OS::ContrailV2::InterfaceRouteTable`` + Resource ID **MAY** use the naming convention - * {network-role}_RIRT + * ``{network-role}_RIRT`` where - * {network-role} is the network-role - * 'RIRT' signifies that it is the Resource Interface Route Table + * ``{network-role}`` is the network-role + * ``RIRT`` signifies that it is the Resource Interface Route Table OS::ContrailV2::NetworkIpam ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -846,32 +821,30 @@ OS::ContrailV2::NetworkIpam :id: R-30753 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::NetworkIpam' Resource ID **MUST** - contain the '{network-role}'. + ``OS::ContrailV2::NetworkIpam`` + Resource ID + **MUST** + contain the ``{network-role}``. .. req:: :id: R-81979 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::NetworkIpam' Resource ID **MAY** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::NetworkIpam`` + Resource ID **MAY** use the naming convention - * {network-role}_RNI + * ``{network-role}_RNI`` where - * {network-role} is the network-role - * 'RNI' signifies that it is the Resource Network IPAM + * ``{network-role}`` is the network-role + * ``RNI`` signifies that it is the Resource Network IPAM OS::ContrailV2::PortTuple ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -880,32 +853,28 @@ OS::ContrailV2::PortTuple :id: R-20065 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::PortTuple' Resource ID **MUST** - contain the '{vm-type}'. + ``OS::ContrailV2::PortTuple`` + Resource ID **MUST** contain the ``{vm-type}``. .. req:: :id: R-84457 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::PortTuple' Resource ID **MAY** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::PortTuple`` + Resource ID **MAY** use the naming convention - * {vm-type}_RPT + * ``{vm-type}_RPT`` where - * {vm-type} is the vm-type - * 'RPT' signifies that it is the Resource Port Tuple + * ``{vm-type}`` is the vm-type + * ``RPT`` signifies that it is the Resource Port Tuple OS::ContrailV2::ServiceHealthCheck ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -914,34 +883,32 @@ OS::ContrailV2::ServiceHealthCheck :id: R-76014 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::ServiceHealthCheck' Resource ID **MUST** - contain the '{vm-type}'. + ``OS::ContrailV2::ServiceHealthCheck`` + Resource ID + **MUST** + contain the ``{vm-type}``. .. req:: :id: R-65618 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::ServiceHealthCheck' Resource ID - **MAY** use the naming convention + ``OS::ContrailV2::ServiceHealthCheck`` Resource ID **MAY** use the naming convention - * {vm-type}_RSHC_{LEFT|RIGHT} + * ``{vm-type}_RSHC_{LEFT|RIGHT}`` where - * {vm-type} is the vm-type - * 'RSHC' signifies that it is the Resource Service Health Check - * 'LEFT' is used if the Service Health Check is on the left interface - * 'RIGHT' is used if the Service Health Check is on the right interface + * ``{vm-type}`` is the vm-type + * ``RSHC`` signifies that it is the Resource Service Health Check + * ``LEFT`` is used if the Service Health Check is on the left interface + * ``RIGHT`` is used if the Service Health Check is on the right interface OS::ContrailV2::ServiceTemplate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -950,33 +917,28 @@ OS::ContrailV2::ServiceTemplate :id: R-16437 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::ServiceTemplate' Resource ID **MUST** - contain the '{vm-type}'. + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate`` + Resource ID **MUST** contain the ``{vm-type}``. .. req:: :id: R-14447 :target: VNF :keyword: MAY - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca - A VNF's Heat Orchestration Template's Resource - 'OS::ContrailV2::ServiceTemplate' Resource ID **MAY** - use the naming convention + A VNF's Heat Orchestration Template's Resource ``OS::ContrailV2::ServiceTemplate`` + Resource ID **MAY** use the naming convention - * {vm-type}_RST_{index} + * ``{vm-type}_RST_{index}`` where - * {vm-type} is the vm-type - * 'RST' signifies that it is the Resource Service Template - * '{index}' is is the index + * ``{vm-type}`` is the vm-type + * ``RST`` signifies that it is the Resource Service Template + * ``{index}`` is is the index OS::ContrailV2::VirtualMachineInterface ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -985,71 +947,67 @@ OS::ContrailV2::VirtualMachineInterface :id: R-96253 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - OS::ContrailV2::VirtualMachineInterface that is attaching - to an external network Resource ID **MUST** - use the naming convention + ``OS::ContrailV2::VirtualMachineInterface`` that is attaching to an external network + Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index} + * ``{vm-type}_{vm-type_index}_{network-role}_vmi_{vmi_index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port (i.e. virtual machine interface) is attached to - * {vmi_index} is the instance of the the vmi on the vm-type - attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to + * ``{vmi_index}`` is the instance of the the vmi on the vm-type + attached to the network of ``{network-role}`` .. req:: :id: R-50468 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - OS::ContrailV2::VirtualMachineInterface that is attaching - to an internal network Resource ID **MUST** use the naming convention + ``OS::ContrailV2::VirtualMachineInterface`` that is attaching to an internal network + Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index} + * ``{vm-type}_{vm-type_index}_int_{network-role}_vmi_{vmi_index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port (i.e. virtual machine interface) is attached to - * {vmi_index} is the instance of the the vmi on the vm-type - attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to + * ``{vmi_index}`` is the instance of the the vmi on the vm-type + attached to the network of ``{network-role}`` .. req:: :id: R-54458 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - OS::ContrailV2::VirtualMachineInterface that is attaching to - a sub-interface network Resource ID **MUST** use the naming convention + ``OS::ContrailV2::VirtualMachineInterface`` that is attaching to a sub-interface + network Resource ID **MUST** use the naming convention - * {vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index} + * ``{vm-type}_{vm-type_index}_subint_{network-role}_vmi_{vmi_index}`` where - * {vm-type} is the vm-type - * {vm-type_index} is the instance of the {vm-type} - * {network-role} is the network-role of the network - that the port (i.e. virtual machine interface) is attached to - * {vmi_index} is the instance of the the vmi on the vm-type - attached to the network of {network-role} + * ``{vm-type}`` is the vm-type + * ``{vm-type_index}`` is the instance of the ``{vm-type}`` + * ``{network-role}`` is the network-role of the network + that the port (i.e. virtual machine interface) is attached to + * ``{vmi_index}`` is the instance of the the vmi on the vm-type + attached to the network of ``{network-role}`` OS::ContrailV2::VirtualNetwork ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1058,23 +1016,22 @@ OS::ContrailV2::VirtualNetwork :id: R-99110 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca A VNF's Heat Orchestration Template's Resource - OS::ContrailV2::VirtualNetwork Resource ID **MUST** - use the naming convention + ``OS::ContrailV2::VirtualNetwork`` Resource ID **MUST** use the naming convention - * 'int_{network-role}_network' + 1) ``int_{network-role}_network`` or - * 'int_{network-role}_RVN' where RVN represents Resource Virtual Network + 2) ``int_{network-role}_RVN`` where RVN represents Resource Virtual + Network -VNF Heat Orchestration Templates can only create internal networks. -There is no {index} after {network-role} because {network-role} -**MUST** be unique in the scope of the VNF's -Heat Orchestration Template. + VNF Heat Orchestration Templates can only create internal networks. + There is no ``{index}`` after ``{network-role}`` because ``{network-role}`` + **MUST** be unique in the scope of the VNF's + Heat Orchestration Template. -Note that the first option is preferred. +Note that option 1 is preferred. diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource Property.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource Property.rst index 006175d..b6c7c3b 100644 --- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource Property.rst +++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/Resource Property.rst @@ -5,65 +5,64 @@ Resource Property "name" ---------------------------- -The parameter naming convention of the property name for the -resource OS::Nova::Server has been defined in +The parameter naming convention of the property ``name`` for the resource +``OS::Nova::Server`` has been defined in :ref:`Nova Server - Metadata Parameters`. -This section provides the requirements how the property name for non -OS::Nova::Server resources must be defined when the property is used. -Not all resources require the property name (e.g., it is optional) and +This section provides specifies how the property ``name`` for non +``OS::Nova::Server`` resources must be defined when the property is used. +Not all resources require the property ``name`` (e.g., it is optional) and some resources do not support the property. .. req:: :id: R-85734 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - If a VNF's Heat Orchestration Template contains the property 'name' - for a non 'OS::Nova::Server' resource, the intrinsic function - 'str_replace' **MUST** be used in conjunction with the ONAP - supplied metadata parameter 'vnf_name' to generate a unique value. + If a VNF's Heat Orchestration Template contains the property ``name`` + for a non ``OS::Nova::Server`` resource, the intrinsic function + ``str_replace`` **MUST** be used in conjunction with the ONAP + supplied metadata parameter ``vnf_name`` to generate a unique value. -This prevents the enumeration of a -unique value for the property name in a per instance environment file. +This approach prevents the enumeration of a unique value for the property +``name`` in a per instance environment file. .. req:: :id: R-99812 :target: VNF :keyword: MUST NOT - :test: no test found - :test_case: no test found - :test_file: no test found + :validation_mode: static + :updated: casablanca - A value for VNF's Heat Orchestration Template's property 'name' - for a non 'OS::Nova::Server' resource **MUST NOT** be declared + A value for VNF's Heat Orchestration Template's property ``name`` + for a non ``OS::Nova::Server`` resource **MUST NOT** be declared in the VNF's Heat Orchestration Template's Environment File. -In most cases the use of the metadata value 'vnf_name' is required to create a -unique property name. If this will not provide a unique value, +In most cases the use of the metadata value ``vnf_name`` is required to create +a unique property name. If this will not provide a unique value, additional options include: - Using the Heat Orchestration Template pseudo parameter - 'OS::stack_name' in the str_replace construct + ``OS::stack_name`` in the str_replace construct - Resources created in a nested heat file invoked by an - 'OS::Heat::ResourceGroup' can use the 'index' to construct a unique name - + ``OS::Heat::ResourceGroup`` can use the ``index`` to construct a unique name .. req:: :id: R-32408 :target: VNF :keyword: MUST - :test: no test found - :test_case: no test found - :test_file: no test found - - If a VNF's Heat Orchestration Template property 'name' - for a non 'OS::Nova::Server' resource uses the intrinsic function - 'str_replace' in conjunction with the ONAP - supplied metadata parameter 'vnf_name' and does not create + :validation_mode: static + :updated: casablanca + + If a VNF's Heat Orchestration Template property ``name`` + for a non ``OS::Nova::Server`` resource uses the intrinsic function + ``str_replace`` in conjunction with the ONAP + supplied metadata parameter ``vnf_name`` and does not create a unique value, additional data **MUST** be used in the - 'str_replace' to create a unique value, such as 'OS::stack_name' - and/or the 'OS::Heat::ResourceGroup' 'index'. + ``str_replace`` to create a unique value, such as ``OS::stack_name`` + and/or the ``OS::Heat::ResourceGroup`` ``index``. *Example: Property 'name' for resource 'OS::Neutron::SecurityGroup'* @@ -125,9 +124,7 @@ Contrail Issue with Values for the Property Name :id: R-84517 :target: VNF :keyword: SHOULD - :test: no test found - :test_case: no test found - :test_file: no test found + :updated: casablanca The Contrail GUI has a limitation displaying special characters. The issue is documented in @@ -136,12 +133,12 @@ Contrail Issue with Values for the Property Name However, if special characters must be used, note that for the following resources: - * Virtual Machine - * Virtual Network - * Port - * Security Group - * Policies - * IPAM Creation + * Virtual Machine + * Virtual Network + * Port + * Security Group + * Policies + * IPAM Creation the only special characters supported are - \" ! $\ \ ' ( ) = ~ ^ | @ ` { } [ ] > , . _" 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 ac0d603..48ca384 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 @@ -12,57 +12,68 @@ The assignment of a {network-role} is discussed in :id: R-21330 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource property - parameter that is associated with external network **MUST** - include the '{network-role}' as part of the parameter name. + A VNF's Heat Orchestration Template's Resource property parameter that is + associated with external network **MUST** include the ``{network-role}`` + as part of the parameter name. .. req:: :id: R-11168 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource ID that is - associated with an external network **MUST** include the - '{network-role}' as part of the resource ID. + A VNF's Heat Orchestration Template's Resource ID that is associated with + an external network **MUST** include the ``{network-role}`` as part + of the resource ID. .. req:: :id: R-84322 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource property - parameter that is associated with an internal network - **MUST** include 'int\_{network-role}' as part of the parameter - name, where 'int\_' is a hard coded string. + A VNF's Heat Orchestration Template's Resource property parameter that + is associated with an internal network **MUST** include + ``int_{network-role}`` as part of the parameter name, + where ``int_`` is a hard coded string. .. req:: :id: R-96983 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource ID that is - associated with an internal network **MUST** include - 'int\_{network-role}' as part of the Resource ID, where - 'int\_' is a hard coded string. + A VNF's Heat Orchestration Template's Resource ID that is associated + with an internal network **MUST** include ``int_{network-role}`` as part + of the Resource ID, where ``int_`` is a hard coded string. .. req:: :id: R-26506 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's '{network-role}' - **MUST** contain only alphanumeric characters and/or - underscores '_' and **MUST NOT** contain any of the following - strings: '_int' or 'int\_' or '\_int\_'. + A VNF's Heat Orchestration Template's ``{network-role}`` **MUST** contain + only alphanumeric characters and/or underscores '_' and + **MUST NOT** contain any of the following strings: + ``_int`` or ``int_`` or ``_int_``. .. req:: :id: R-00977 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's '{network-role}' - **MUST NOT** be a substring of '{vm-type}'. + A VNF's Heat Orchestration Template's ``{network-role}`` + **MUST NOT** be a substring of ``{vm-type}``. For example, if a VNF has a '{vm-type}' of 'oam' and a '{network-role}' of 'oam\_protected' would be a violation of the requirement. @@ -72,23 +83,28 @@ For example, if a VNF has a '{vm-type}' of 'oam' and a :id: R-58424 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's use of '{network-role}' + A VNF's Heat Orchestration Template's use of ``{network-role}`` in all Resource property parameter names **MUST** be the same case. .. req:: :id: R-21511 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's use of '{network-role}' + A VNF's Heat Orchestration Template's use of ``{network-role}`` in all Resource IDs **MUST** be the same case. .. req:: :id: R-86588 :target: VNF :keyword: SHOULD + :updated: casablanca - 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. + 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. diff --git a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{vm-type}.rst b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{vm-type}.rst index 2a947a7..6357b8e 100644 --- a/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{vm-type}.rst +++ b/docs/Chapter5/Heat/ONAP Heat Resource ID and Parameter Naming Convention/{vm-type}.rst @@ -11,71 +11,84 @@ :id: R-01455 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - When a VNF's Heat Orchestration Template creates a - Virtual Machine (i.e., 'OS::Nova::Server'), each 'class' of VMs - **MUST** be assigned a VNF unique '{vm-type}'; where 'class' - defines VMs that **MUST** have the following identical characteristics: + When a VNF's Heat Orchestration Template creates a Virtual Machine + (i.e., ``OS::Nova::Server``), + each "class" of VMs **MUST** be assigned a VNF unique + ``{vm-type}``; where "class" defines VMs that + **MUST** have the following identical characteristics: - 1.) OS::Nova::Server property flavor value + 1.) ``OS::Nova::Server`` resource property ``flavor`` value - 2.) OS::Nova::Server property image value + 2.) ``OS::Nova::Server`` resource property ``image`` value 3.) Cinder Volume attachments - - Each VM in the 'class' **MUST** have the identical Cinder Volume - configuration + - Each VM in the "class" **MUST** have the identical Cinder Volume + configuration 4.) Network attachments and IP address requirements - - Each VM in the 'class' **MUST** have the the identical number - of ports connecting to the identical networks and requiring the - identical IP address configuration. + - Each VM in the "class" **MUST** have the the identical number of + ports connecting to the identical networks and requiring the identical + IP address configuration. .. req:: :id: R-82481 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource property - parameter that is associated with a unique Virtual Machine - type **MUST** include '{vm-type}' as part of the parameter - name with two exceptions: + A VNF's Heat Orchestration Template's Resource property parameter that is + associated with a unique Virtual Machine type **MUST** include + ``{vm-type}`` as part of the parameter name with two exceptions: - 1.) The Resource OS::Nova::Server property availability_zone parameter - **MUST NOT** be prefixed with a common '{vm-type} identifier, + 1.) The Resource ``OS::Nova::Server`` property ``availability_zone`` + parameter **MUST NOT** be prefixed with a common ``{vm-type}`` identifier, - 2.) The Resource OS::Nova::Server eight mandatory and optional metadata - parameters (vnf_name, vnf_id, vf_module_id, vf_module_name, vm_role, - vf_module_index, environment_context, workload_context) **MUST NOT** - be prefixed with a common '{vm-type}' identifier. + 2.) The Resource ``OS::Nova::Server`` eight mandatory and optional + ``metadata`` + parameters (i.e., ``vnf_name``, ``vnf_id``, ``vf_module_id``, + ``vf_module_name``, ``vm_role``, + ``vf_module_index``, ``environment_context``, ``workload_context``) + **MUST NOT** be prefixed with a common ``{vm-type}`` identifier. .. req:: :id: R-66729 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's Resource that is - associated with a unique Virtual Machine type **MUST** include - '{vm-type}' as part of the resource ID. + A VNF's Heat Orchestration Template's Resource that is associated with a + unique Virtual Machine type **MUST** include ``{vm-type}`` as part of the + resource ID. .. req:: :id: R-98407 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's '{vm-type}' **MUST** contain - only alphanumeric characters and/or underscores '_' and - **MUST NOT** contain any of the following strings: '_int' or 'int\_' - or '\_int\_'. + A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST** contain only + alphanumeric characters and/or underscores '_' and **MUST NOT** + contain any of the following strings: + ``_int`` or ``int_`` or ``_int_``. .. req:: :id: R-48067 :target: VNF :keyword: MUST NOT + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's {vm-type} **MUST NOT** be a - substring of {network-role}. + A VNF's Heat Orchestration Template's ``{vm-type}`` **MUST NOT** be a + substring + of ``{network-role}``. It may cause the VNF Validation Program validation-scripts project to produce erroneous error messages. @@ -85,23 +98,28 @@ to produce erroneous error messages. :id: R-32394 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's use of '{vm-type}' - in all Resource property parameter names **MUST** be the same case. + A VNF's Heat Orchestration Template's use of ``{vm-type}`` in all Resource + property parameter names **MUST** be the same case. .. req:: :id: R-46839 :target: VNF :keyword: MUST + :validation_mode: static + :updated: casablanca - A VNF's Heat Orchestration Template's use of - '{vm-type}' in all Resource IDs **MUST** be the same case. + A VNF's Heat Orchestration Template's use of ``{vm-type}`` + in all Resource IDs **MUST** be the same case. .. req:: :id: R-36687 :target: VNF :keyword: SHOULD + :updated: casablanca - A VNF's Heat Orchestration Template's '{vm-type}' case in - Resource property parameter names **SHOULD** match the case of - '{vm-type}' in Resource IDs and vice versa. + A VNF's Heat Orchestration Template's ``{vm-type}`` case in Resource + property parameter names **SHOULD** match the case of ``{vm-type}`` + in Resource IDs and vice versa. |