1 .. Licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright 2017 AT&T Intellectual Property. All rights reserved.
5 .. _Nova Server - Metadata Parameters:
7 Resource: OS::Nova::Server Metadata Parameters
8 --------------------------------------------------------------------------------
10 The ``OS::Nova::Server`` resource property ``metadata`` is an optional
12 Table 2 summarizes the mandatory and optional ``metadata`` supported by ONAP.
13 The sections that follow provides the requirements associated with each
14 ``metadata`` parameter.
17 .. csv-table:: **Table 2 OS::Nova::Server Mandatory and Optional Metadata**
18 :header: Resource, Property, Parameter Name, Parameter Type, Required, Parameter Value Provided to Heat
22 OS::Nova::Server, metadata, vnf_id, string, **MUST**, ONAP
23 OS::Nova::Server, metadata, vf_module_id, string, **MUST**, ONAP
24 OS::Nova::Server, metadata, vnf_name, string, **MUST**, ONAP
25 OS::Nova::Server, metadata, vf_module_name, string, **SHOULD**, ONAP
26 OS::Nova::Server, metadata, vm_role, string, **MAY**, YAML or Environment File
27 OS::Nova::Server, metadata, vf_module_index, number, **MAY**, ONAP
28 OS::Nova::Server, metadata, workload_context, string, **MUST**, ONAP
29 OS::Nova::Server, metadata, environment_context, string, **MUST**, ONAP
34 The ``OS::Nova::Server`` resource property ``metadata`` key/value pair
35 ``vnf_id`` is an ONAP generated UUID that identifies the VNF. The value
36 is provided by ONAP to the VNF's Heat Orchestration
37 Template at orchestration time.
43 :validation_mode: static
46 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
47 resource property ``metadata`` **MUST**
48 contain the key/value pair ``vnf_id``
49 and the value **MUST** be obtained via a ``get_param``.
55 :validation_mode: static
58 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
60 ``metadata`` key/value pair ``vnf_id`` parameter
61 **MUST** be declared as ``vnf_id`` and the parameter **MUST**
62 be defined as type: ``string``.
68 :validation_mode: static
71 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
73 ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT**
74 have parameter constraints defined.
80 :validation_mode: static
83 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
85 ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT**
86 be enumerated in the Heat Orchestration Template's environment file.
88 *Example 'vnf_id' Parameter Definition*
96 description: Unique ID for this VNF instance
101 The OS::Nova::Server Resource ``metadata`` map value parameter ``vf_module_id``
102 is an ONAP generated UUID that identifies the VF Module (e.g., Heat
103 Orchestration Template). The value
104 is provided by ONAP to the VNF's Heat Orchestration
105 Template at orchestration time.
111 :validation_mode: static
114 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
115 property ``metadata`` **MUST**
116 contain the key/value pair ``vf_module_id``
117 and the value MUST be obtained via a ``get_param``.
123 :validation_mode: static
126 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
127 ``metadata`` key/value pair ``vf_module_id`` parameter **MUST**
128 be declared as ``vf_module_id`` and the parameter **MUST**
129 be defined as type: ``string``.
135 :validation_mode: static
138 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
139 ``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id``
141 have parameter constraints defined.
147 :validation_mode: static
150 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
151 ``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id``
153 be enumerated in the Heat Orchestration Template's environment file.
155 *Example 'vf_module_id' Parameter Definition*
163 description: Unique ID for this VNF module instance
169 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name``
170 is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
172 is provided by ONAP to the VNF's Heat Orchestration
173 Template at orchestration time.
179 :validation_mode: static
182 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
183 ``metadata`` **MUST** contain the key/value pair ``vnf_name`` and the
184 value **MUST** be obtained via a ``get_param``.
190 :validation_mode: static
193 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
194 property ``metadata`` key/value pair ``vnf_name`` parameter **MUST**
195 be declared as ``vnf_name`` and the parameter **MUST** be defined as
202 :validation_mode: static
205 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
206 property ``metadata`` key/value pair ``vnf_name``
207 parameter ``vnf_name`` **MUST NOT**
208 have parameter constraints defined.
214 :validation_mode: static
217 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
218 property ``metadata`` key/value pair ``vnf_name`` parameter
219 ``vnf_name`` **MUST NOT**
220 be enumerated in the Heat Orchestration Template's environment file.
223 *Example 'vnf_name' Parameter Definition*
231 description: Unique name for this VNF instance
236 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter
238 is the deployment name of the heat stack created (e.g., ``<STACK_NAME>``)
240 VNF's Heat Orchestration template
241 in the command ``Heat stack-create``
242 (e.g., ``Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>``).
243 The ``vf_module_name`` (e.g., ``<STACK_NAME>`` is specified as
244 part of the orchestration process.
252 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
253 property metadata **SHOULD** contain the key/value pair ``vf_module_name``.
259 :validation_mode: static
263 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
264 property ``metadata`` key/value pair ``vf_module_name``
266 be obtained via a ``get_param``.
272 :validation_mode: static
275 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
277 ``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be
278 declared as ``vf_module_name`` and the parameter **MUST**
279 be defined as type: ``string``.
285 :validation_mode: static
288 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
290 ``metadata`` key/value pair ``vf_module_name`` parameter ``vf_module_name``
291 **MUST NOT** have parameter constraints defined.
297 :validation_mode: static
301 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
302 property ``metadata`` key/value pair ``vf_module_name``
303 parameter ``vf_module_name`` **MUST NOT**
304 be enumerated in the Heat Orchestration Template's environment file.
307 *Example 'vf_module_name' Parameter Definition*
315 description: Unique name for this VNF Module instance
320 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm_role``
321 is a ``metadata`` tag that describes the role of the Virtual Machine.
329 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
331 contain the key/value pair ``vm_role`` and the value **MUST** be
335 - hard coded in the key/value pair ``vm_role``.
341 :validation_mode: none
344 If a VNF's Heat Orchestration Template's ``OS::Nova::Server``
346 ``metadata`` key/value pair ``vm_role`` value is obtained via
347 ``get_param``, the parameter **MAY** be declared as
349 * ``vm_role`` and the parameter defined as ``type: string``.
350 * ``vm_roles`` and the parameter defined as ``type: comma_delimited_list``.
351 * ``{vm-type}_vm_role`` and the parameter defined as ``type: string``.
357 :validation_mode: static
360 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
361 property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
362 **MUST NOT** have parameter constraints defined.
364 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
371 :validation_mode: static
374 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
375 property ``metadata`` key/value pair ``vm_role`` value **MUST**
376 only contain alphanumeric characters and underscores (i.e., '_').
379 *Example 'vm_role' Parameter Definition*
387 description: Unique role for this VM
389 *Example: 'vm_role' Definition: Hard Coded in
390 OS::Nova::Resource metadata property*
397 type: OS::Nova::Server
403 *Example 'vm_role' Definition: Defined in Environment file
404 and retrieved via 'get_param'*
411 type: OS::Nova::Server
415 vm_role: { get_param: vm_role }
417 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
418 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
420 The example below depicts part of a Heat Orchestration Template that
421 uses the five of the ``OS::Nova::Server`` resource
422 ``metadata`` map value parameters discussed in this
423 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
430 description: VM Name for lb VM 0
433 description: Unique name for this VNF instance
436 description: Unique ID for this VNF instance
439 description: Unique name for this VNF Module instance
442 description: Unique ID for this VNF Module instance
445 description: Unique role for this VM
448 type: OS::Nova::Server
450 name: { get_param: lb_name_0 }
453 vnf_name: { get_param: vnf_name }
454 vnf_id: { get_param: vnf_id }
455 vf_module_name: { get_param: vf_module_name }
456 vf_module_id: { get_param: vf_module_id }
469 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
470 resource property ``metadata`` **MAY**
471 contain the key/value pair ``vf_module_index``.
478 :validation_mode: static
481 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
482 resource property ``metadata``
483 key/value pair ``vf_module_index``
484 value **MUST** be obtained via a ``get_param``.
490 :validation_mode: static
493 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
495 ``metadata`` key/value pair ``vf_module_index`` parameter **MUST**
496 be declared as ``vf_module_index`` and the parameter **MUST** be
497 defined as type: ``number``.
504 :validation_mode: static
508 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
509 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
510 have parameter constraints defined.
516 :validation_mode: static
519 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
521 ``metadata`` key/value pair ``vf_module_index`` parameter
522 ``vf_module_index`` **MUST NOT**
523 be enumerated in the Heat Orchestration Template's environment file.
529 :validation_mode: static
532 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
533 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
534 be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be
535 used in VNF's Volume template;
538 The ``vf_module_index`` parameter indicates which instance of the module is
539 being deployed into the VNF.
540 This parameter may be used in cases where multiple instances of the same
541 incremental module are being instantiated for scaling purposes. The index
542 can be used in the Heat Orchestration Template for indexing into a
543 ``comma_delimited_list`` defined parameter to provide a unique value
544 for each module instance.
545 The parameter list may be defined in the VNF's Heat Orchestration
546 Template's environmental file or be provided by SDN-C.
548 ONAP does not support the ``vf_module_index`` to be utilized as an index by all
549 parameters defined as ``comma_delimited_list``.
550 The ``vf_module_index`` must not be used for indexing the following
551 resource property parameters:
553 - ``OS::Nova::Server`` property ``name`` parameter (defined as a
554 ``comma_delimited_list``).
555 - ``OS::Neutron::Port`` property ``fixed_ips`` map property ``ip_address``
556 parameter (defined as a ``comma_delimited_list``) when the port is
557 attaching to an ONAP external network (per the ONAP
558 definition, see Requirement R-57424 and R-16968)
560 The ``vf_module_index`` may be used for indexing ``OS::Neutron::Port`` property
561 ``fixed_ips`` map property ``ip_address`` parameter (defined as a
562 ``comma_delimited_list``) when the port is attaching to an
563 ONAP internal network (per the ONAP definition, see Requirements R-52425 and
564 R-46461 and R-35666). An example is provided below.
570 :validation_mode: static
571 :introduced: frankfurt
573 A VNF's Heat Orchestration Template's parameter ``vf_module_index``
574 **MUST NOT** be used for indexing an:
576 - ``OS::Nova::Server`` property ``name`` parameter (when defined as a
577 ``comma_delimited_list``).
578 - ``OS::Neutron::Port`` property ``fixed_ips`` map property ``ip_address``
579 parameter (when defined as a ``comma_delimited_list``) when the port is
580 attaching to an ONAP external network (per the ONAP
581 definition, see Requirement R-57424 and R-16968)
583 The ``vf_module_index`` will start at 0 for the first instance of a module
584 type. Subsequent instances of the same module type will receive the
585 lowest unused index. This means that indexes will be reused if a module
586 is deleted and re-added. As an example, if three copies of a module are
587 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
588 the second one is deleted (index 1), and then re-added, index 1 will be
593 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
594 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
595 OAM VM attaches to an ONAP internal network which has a
596 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
597 environment file contains the four IP addresses that each successive OAM
598 VM will be assigned. The ``vf_module_index`` is used as the index to
599 determine the IP assignment.
606 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
615 description: Unique index for this VNF Module instance
618 description: VM Name for lb VM 0
621 description: Neutron UUID for the internal control network
623 type: comma_delimited_list
624 description: Fixed IP assignments for oam VMs on the internal control
628 type: OS::Nova::Server
630 name: { get_param: oam_vm_name_0 }
632 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
635 vf_module_index: { get_param: vf_module_index }
636 oam_vm_0_int_ctrl_port_0:
637 type: OS::Neutron::Port
639 network: { get_param: int_ctrl_net_id }
640 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
643 ^^^^^^^^^^^^^^^^^^^^^
651 A VNF's Heat Orchestration Template's OS::Nova::Server
652 Resource **SHOULD** contain the metadata map value parameter
659 :validation_mode: static
662 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
663 property ``metadata`` key/value pair ``workload_context``
665 be declared as ``workload_context`` and the parameter **MUST**
666 be defined as type: ``string``.
672 :validation_mode: static
675 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
676 property ``metadata`` key/value pair ``workload_context``
677 parameter ``workload_context`` **MUST NOT**
678 have parameter constraints defined.
684 :validation_mode: static
688 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
689 property ``metadata`` key/value pair ``workload_context``
690 parameter ``workload_context`` **MUST NOT**
691 be enumerated in the Heat Orchestration Template's environment file.
693 The 'workload\_context' parameter value will be chosen by the Service Model
694 Distribution context client in VID and will be supplied to the
695 Heat Orchestration Template by ONAP at orchestration time.
697 *Example Parameter Definition*
704 description: Workload Context for this VNF instance
707 *Example OS::Nova::Server with metadata*
714 {vm-type}_server_{index}:
715 type: OS::Nova::Server
722 vnf_name: { get_param: vnf_name }
723 vnf_id: { get_param: vnf_id }
724 vf_module_name: { get_param: vf_module_name }
725 vf_module_id: { get_param: vf_module_id }
726 workload_context: {get_param: workload_context}
729 ^^^^^^^^^^^^^^^^^^^^^
737 A VNF's Heat Orchestration Template's OS::Nova::Server
738 Resource **SHOULD** contain the metadata map value parameter
739 'environment_context'.
745 :validation_mode: static
748 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
749 property ``metadata`` key/value pair ``environment_context``
750 parameter **MUST** be declared as ``environment_context`` and the
751 parameter type **MUST** be defined as type: ``string``.
757 :validation_mode: static
760 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
761 property ``metadata``key/value pair ``environment_context``
762 parameter ``environment_context`` **MUST NOT**
763 have parameter constraints defined.
769 :validation_mode: static
772 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
774 ``metadata`` key/value pair ``environment_context`` **MUST NOT**
775 be enumerated in the Heat Orchestration Template's environment file.
777 The 'environment_context' parameter value will be defined by the
778 service designer as part of the service model during the SDC
779 on-boarding process and will be supplied to the Heat Orchestration
780 Template by ONAP at orchestration time.
783 *Example Parameter Definition*
790 description: Environment Context for this VNF instance
793 *Example OS::Nova::Server with metadata*
800 {vm-type}_server_{index}:
801 type: OS::Nova::Server
808 vnf_name: { get_param: vnf_name }
809 vnf_id: { get_param: vnf_id }
810 vf_module_name: { get_param: vf_module_name }
811 vf_module_id: { get_param: vf_module_id }
812 workload_context: {get_param: workload_context}
813 environment_context: {get_param: environment_context }