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.
92 :validation_mode: static
95 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
97 ``metadata`` key/value pair ``vnf_id`` is passed into a Nested YAML
98 file, the key/value pair name ``vnf_id`` **MUST NOT** change.
100 *Example 'vnf_id' Parameter Definition*
108 description: Unique ID for this VNF instance
113 The OS::Nova::Server Resource ``metadata`` map value parameter ``vf_module_id``
114 is an ONAP generated UUID that identifies the VF Module (e.g., Heat
115 Orchestration Template). The value
116 is provided by ONAP to the VNF's Heat Orchestration
117 Template at orchestration time.
123 :validation_mode: static
126 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
127 property ``metadata`` **MUST**
128 contain the key/value pair ``vf_module_id``
129 and the value MUST be obtained via a ``get_param``.
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 **MUST**
140 be declared as ``vf_module_id`` and the parameter **MUST**
141 be defined as type: ``string``.
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 have parameter constraints defined.
159 :validation_mode: static
162 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
163 ``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id``
165 be enumerated in the Heat Orchestration Template's environment file.
172 :validation_mode: static
175 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
177 ``metadata`` key/value pair ``vf_module_id`` is passed into a
179 file, the key/value pair name ``vf_module_id`` **MUST NOT** change.
182 *Example 'vf_module_id' Parameter Definition*
190 description: Unique ID for this VNF module instance
196 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name``
197 is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
199 is provided by ONAP to the VNF's Heat Orchestration
200 Template at orchestration time.
206 :validation_mode: static
209 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
210 ``metadata`` **MUST** contain the key/value pair ``vnf_name`` and the
211 value **MUST** be obtained via a ``get_param``.
217 :validation_mode: static
220 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
221 property ``metadata`` key/value pair ``vnf_name`` parameter **MUST**
222 be declared as ``vnf_name`` and the parameter **MUST** be defined as
229 :validation_mode: static
232 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
233 property ``metadata`` key/value pair ``vnf_name``
234 parameter ``vnf_name`` **MUST NOT**
235 have parameter constraints defined.
241 :validation_mode: static
244 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
245 property ``metadata`` key/value pair ``vnf_name`` parameter
246 ``vnf_name`` **MUST NOT**
247 be enumerated in the Heat Orchestration Template's environment file.
253 :validation_mode: static
257 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
259 ``metadata`` key/value pair ``vnf_name`` is passed into a Nested YAML
260 file, the key/value pair name ``vnf_name`` **MUST NOT** change.
262 *Example 'vnf_name' Parameter Definition*
270 description: Unique name for this VNF instance
275 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter
277 is the deployment name of the heat stack created (e.g., ``<STACK_NAME>``)
279 VNF's Heat Orchestration template
280 in the command ``Heat stack-create``
281 (e.g., ``Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>``).
282 The ``vf_module_name`` (e.g., ``<STACK_NAME>`` is specified as
283 part of the orchestration process.
291 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
292 property ``metadata`` **SHOULD**
293 contain the key/value pair ``vf_module_name`` and the value **MUST**
294 be obtained via a ``get_param``.
300 :validation_mode: static
303 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
305 ``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be
306 declared as ``vf_module_name`` and the parameter **MUST**
307 be defined as type: ``string``.
313 :validation_mode: static
316 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
318 ``metadata`` key/value pair ``vf_module_name`` parameter ``vf_module_name``
319 **MUST NOT** have parameter constraints defined.
325 :validation_mode: static
329 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
330 property ``metadata`` key/value pair ``vf_module_name``
331 parameter ``vf_module_name`` **MUST NOT**
332 be enumerated in the Heat Orchestration Template's environment file.
338 :validation_mode: static
341 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
342 property ``metadata`` key/value pair ``vf_module_name`` is passed into a
344 file, the key/value pair name ``vf_module_name`` **MUST NOT** change.
346 *Example 'vf_module_name' Parameter Definition*
354 description: Unique name for this VNF Module instance
359 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm-role``
360 is a ``metadata`` tag that describes the role of the Virtual Machine.
361 The ``vm_role`` is stored in ONAP’s A&AI module and is
362 available for use by other ONAP components and/or north bound systems.
370 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
372 contain the key/value pair ``vm_role`` and the value **MUST** be
376 - hard coded in the key/value pair ``vm_role``.
382 :validation_mode: static
385 If a VNF's Heat Orchestration Template's ``OS::Nova::Server``
387 ``metadata`` key/value pair ``vm_role`` value is obtained via
388 ``get_param``, the parameter **MUST** be declared as ``vm_role``
389 and the parameter **MUST** be defined as type: ``string``.
395 :validation_mode: static
398 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
399 property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
400 **MUST NOT** have parameter constraints defined.
402 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
409 :validation_mode: static
412 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
413 property ``metadata`` key/value pair ``vm_role`` value **MUST**
414 only contain alphanumeric characters and underscores (i.e., '_').
421 :validation_mode: static
424 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
425 property ``metadata`` key/value pair ``vm_role`` is passed into a Nested
427 file, the key/value pair name ``vm_role`` **MUST NOT** change.
430 *Example 'vm_role' Parameter Definition*
438 description: Unique role for this VM
440 *Example: 'vm-role' Definition: Hard Coded in
441 OS::Nova::Resource metadata property*
448 type: OS::Nova::Server
454 *Example 'vm-role' Definition: Defined in Environment file
455 and retrieved via 'get_param'*
462 type: OS::Nova::Server
466 vm_role: { get_param: vm_role }
468 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
469 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
471 The example below depicts part of a Heat Orchestration Template that
472 uses the five of the ``OS::Nova::Server`` resource
473 ``metadata`` map value parameters discussed in this
474 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
481 description: VM Name for lb VM 0
484 description: Unique name for this VNF instance
487 description: Unique ID for this VNF instance
490 description: Unique name for this VNF Module instance
493 description: Unique ID for this VNF Module instance
496 description: Unique role for this VM
499 type: OS::Nova::Server
501 name: { get_param: lb_name_0 }
504 vnf_name: { get_param: vnf_name }
505 vnf_id: { get_param: vnf_id }
506 vf_module_name: { get_param: vf_module_name }
507 vf_module_id: { get_param: vf_module_id }
520 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
521 resource property ``metadata`` **MAY**
522 contain the key/value pair ``vf_module_index``
523 and the value **MUST** be obtained via a ``get_param``.
529 :validation_mode: static
532 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
534 ``metadata`` key/value pair ``vf_module_index`` parameter **MUST**
535 be declared as ``vf_module_index`` and the parameter **MUST** be
536 defined as type: ``number``.
543 :validation_mode: static
547 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
548 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
549 have parameter constraints defined.
555 :validation_mode: static
558 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
560 ``metadata`` key/value pair ``vf_module_index`` parameter
561 ``vf_module_index`` **MUST NOT**
562 be enumerated in the Heat Orchestration Template's environment file.
568 :validation_mode: static
571 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
572 property ``metadata`` key/value pair ``vf_module_index`` is passed into a
573 Nested YAML file, the key/value pair
574 ``vf_module_index`` **MUST NOT** change.
580 :validation_mode: static
583 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
584 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
585 be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be
586 used in VNF's Volume template;
589 The ``vf_module_index`` parameter indicates which instance of the module is
590 being deployed into the VNF.
591 This parameter may be used in cases where multiple instances of the same
592 incremental module may be instantiated for scaling purposes. The index
593 can be used in the Heat Orchestration Template for indexing into a
594 pseudo-constant array parameter when unique values are required for each
595 module instance, e.g., for fixed private IP addresses on VM types.
597 The ``vf_module_index`` will start at 0 for the first instance of a module
598 type. Subsequent instances of the same module type will receive the
599 lowest unused index. This means that indexes will be reused if a module
600 is deleted and re-added. As an example, if three copies of a module are
601 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
602 the second one is deleted (index 1), and then re-added, index 1 will be
607 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
608 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
609 OAM VM attaches to an internal control network which has a
610 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
611 environment file contains the four IP addresses that each successive OAM
612 VM will be assigned. The ``vf_module_index`` is used as the index to
613 determine the IP assignment.
620 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
629 description: Unique index for this VNF Module instance
632 description: VM Name for lb VM 0
635 description: Neutron UUID for the internal control network
637 type: comma_delimited_list
638 description: Fixed IP assignments for oam VMs on the internal control
642 type: OS::Nova::Server
644 name: { get_param: oam_vm_name_0 }
646 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
649 vf_module_index: { get_param: vf_module_index }
650 oam_vm_0_int_ctrl_port_0:
651 type: OS::Neutron::Port
653 network: { get_param: int_ctrl_net_id }
654 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
657 ^^^^^^^^^^^^^^^^^^^^^
665 A VNF's Heat Orchestration Template's OS::Nova::Server
666 Resource **SHOULD** contain the metadata map value parameter
673 :validation_mode: static
676 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
677 property ``metadata`` key/value pair ``workload_context``
679 be declared as ``workload_context`` and the parameter **MUST**
680 be defined as type: ``string``.
686 :validation_mode: static
689 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
690 property ``metadata`` key/value pair ``workload_context``
691 parameter ``workload_context`` **MUST NOT**
692 have parameter constraints defined.
698 :validation_mode: static
702 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
703 property ``metadata`` key/value pair ``workload_context``
704 parameter ``workload_context`` **MUST NOT**
705 be enumerated in the Heat Orchestration Template's environment file.
711 :validation_mode: static
714 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
715 property ``metadata`` key/value pair ``workload_context``
716 is passed into a Nested YAML
717 file, the key/value pair name ``workload_context`` **MUST NOT** change.
720 The 'workload\_context' parameter value will be chosen by the Service Model
721 Distribution context client in VID and will be supplied to the
722 Heat Orchestration Template by ONAP at orchestration time.
724 *Example Parameter Definition*
731 description: Workload Context for this VNF instance
734 *Example OS::Nova::Server with metadata*
741 {vm-type}_server_{index}:
742 type: OS::Nova::Server
749 vnf_name: { get_param: vnf_name }
750 vnf_id: { get_param: vnf_id }
751 vf_module_name: { get_param: vf_module_name }
752 vf_module_id: { get_param: vf_module_id }
753 workload_context: {get_param: workload_context}
756 ^^^^^^^^^^^^^^^^^^^^^
764 A VNF's Heat Orchestration Template's OS::Nova::Server
765 Resource **SHOULD** contain the metadata map value parameter
766 'environment_context'.
772 :validation_mode: static
775 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
776 property ``metadata`` key/value pair ``environment_context``
777 parameter **MUST** be declared as ``environment_context`` and the
778 parameter type **MUST** be defined as type: ``string``.
784 :validation_mode: static
787 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
788 property ``metadata``key/value pair ``environment_context``
789 parameter ``environment_context`` **MUST NOT**
790 have parameter constraints defined.
796 :validation_mode: static
799 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
801 ``metadata`` key/value pair ``environment_context`` **MUST NOT**
802 be enumerated in the Heat Orchestration Template's environment file.
808 :validation_mode: static
811 If a VNF's Heat Orchestration Template's ``OS::Nova::Server Resource``
812 ``metadata`` map value parameter ``environment_context`` is passed into a
814 file, the parameter name ``environment_context`` **MUST NOT** change.
816 The 'environment_context' parameter value will be defined by the
817 service designer as part of the service model during the SDC
818 on-boarding process and will be supplied to the Heat Orchestration
819 Template by ONAP at orchestration time.
822 *Example Parameter Definition*
829 description: Environment Context for this VNF instance
832 *Example OS::Nova::Server with metadata*
839 {vm-type}_server_{index}:
840 type: OS::Nova::Server
847 vnf_name: { get_param: vnf_name }
848 vnf_id: { get_param: vnf_id }
849 vf_module_name: { get_param: vf_module_name }
850 vf_module_id: { get_param: vf_module_id }
851 workload_context: {get_param: workload_context}
852 environment_context: {get_param: environment_context }