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 OpenStack
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``.
54 :validation_mode: static
57 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
59 ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST**
60 be declared as type: ``string``.
66 :validation_mode: static
69 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
71 ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT**
72 have parameter constraints defined.
78 :validation_mode: static
81 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
83 ``metadata`` key/value pair ``vnf_id`` parameter ``vnf_id`` **MUST NOT**
84 be enumerated in the Heat Orchestration Template's environment file.
90 :validation_mode: static
93 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
95 ``metadata`` key/value pair ``vnf_id`` is passed into a Nested YAML
96 file, the key/value pair name ``vnf_id`` **MUST NOT** change.
98 *Example 'vnf_id' Parameter Definition*
106 description: Unique ID for this VNF instance
111 The OS::Nova::Server Resource ``metadata`` map value parameter ``vf_module_id``
112 is an ONAP generated UUID that identifies the VF Module (e.g., Heat
113 Orchestration Template). The value
114 is provided by ONAP to the VNF's Heat Orchestration
115 Template at orchestration time.
121 :validation_mode: static
124 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MUST**
125 contain the ``metadata`` map value parameter ``vf_module_id``.
131 :validation_mode: static
134 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
135 ``metadata`` key/value pair ``vf_module_id`` parameter **MUST**
136 be declared as ``vf_module_id`` and the parameter **MUST**
137 be defined as type: ``string``.
143 :validation_mode: static
146 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
147 ``metadata`` map value parameter ``vf_module_id`` **MUST NOT**
148 have parameter constraints defined.
154 :validation_mode: static
157 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
158 ``metadata`` map value parameter ``vf_module_id`` **MUST NOT**
159 be enumerated in the Heat Orchestration Template's environment file.
165 :validation_mode: static
168 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
170 ``metadata`` key/value pair ``vf_module_id`` is passed into a
172 file, the key/value pair name ``vf_module_id`` **MUST NOT** change.
175 *Example 'vf_module_id' Parameter Definition*
183 description: Unique ID for this VNF module instance
189 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name``
190 is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
192 is provided by ONAP to the VNF's Heat Orchestration
193 Template at orchestration time.
199 :validation_mode: static
202 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MUST**
203 contain the ``metadata`` map value parameter ``vnf_name``.
209 :validation_mode: static
212 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
213 ``metadata`` map value parameter ``vnf_name`` **MUST**
214 be declared as type: ``string``.
220 :validation_mode: static
223 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
224 property ``metadata`` key/value pair ``vnf_name``
225 parameter ``vnf_name`` **MUST NOT**
226 have parameter constraints defined.
232 :validation_mode: static
235 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
236 property ``metadata`` key/value pair ``vnf_name`` parameter
237 ``vnf_name`` **MUST NOT**
238 be enumerated in the Heat Orchestration Template's environment file.
244 :validation_mode: static
247 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
248 ``metadata`` map value parameter ``vnf_name`` is passed into a Nested YAML
249 file, the parameter name ``vnf_name`` **MUST NOT** change.
251 *Example 'vnf_name' Parameter Definition*
259 description: Unique name for this VNF instance
264 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter
266 is the deployment name of the heat stack created (e.g., ``<STACK_NAME>``)
268 VNF's Heat Orchestration template
269 in the command ``Heat stack-create``
270 (e.g., ``Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>``).
271 The ``vf_module_name`` (e.g., ``<STACK_NAME>`` is specified as
272 part of the orchestration process.
280 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
282 contain the ``metadata`` map value parameter ``vf_module_name``.
288 :validation_mode: static
291 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
293 ``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be
294 declared as ``vf_module_name`` and the parameter **MUST**
295 be defined as type: ``string``.
301 :validation_mode: static
304 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
305 ``metadata`` map value parameter ``vf_module_name`` **MUST NOT**
306 have parameter constraints defined.
312 :validation_mode: static
315 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
316 ``metadata`` map value parameter ``vf_module_name`` **MUST NOT**
317 be enumerated in the Heat Orchestration Template's environment file.
323 :validation_mode: static
326 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
327 metadata map value parameter ``vf_module_name`` is passed into a Nested YAML
328 file, the parameter name ``vf_module_name`` **MUST NOT** change.
330 *Example 'vf_module_name' Parameter Definition*
338 description: Unique name for this VNF Module instance
343 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm-role``
344 is a ``metadata`` tag that describes the role of the Virtual Machine.
345 The ``vm_role`` is stored in ONAP’s A&AI module and is
346 available for use by other ONAP components and/or north bound systems.
354 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
356 contain the key/value pair ``vm_role`` and the value **MUST** be
360 - hard coded in the key/value pair ``vm_role``.
366 :validation_mode: static
369 A VNF's Heat Orchestration Template's OS::Nova::Server Resource
370 ``metadata`` map value parameter ``vm_role`` **MUST**
371 be declared as type: ``string``.
377 :validation_mode: static
380 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
381 property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
382 **MUST NOT** have parameter constraints defined.
388 :validation_mode: static
391 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
392 ``metadata`` map value parameter ``vm_role`` **MUST**
395 * enumerated in the VNF's Heat Orchestration Template's environment
398 * hard coded in the VNF's
399 Heat Orchestration Template's ``OS::Nova::Server`` Resource
400 ``metadata`` property.
403 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
410 :validation_mode: static
413 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
414 ``metadata`` map value parameter ``vm_role`` value **MUST**
415 only contain alphanumeric characters and underscores '_'.
421 :validation_mode: static
424 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
425 ``metadata`` map value parameter ``vm_role`` is passed into a Nested YAML
426 file, the parameter name ``vm_role`` **MUST NOT** change.
428 *Example 'vm_role' Parameter Definition*
436 description: Unique role for this VM
438 *Example: 'vm-role' Definition: Hard Coded in
439 OS::Nova::Resource metadata property*
446 type: OS::Nova::Server
452 *Example 'vm-role' Definition: Defined in Environment file
453 and retrieved via 'get_param'*
460 type: OS::Nova::Server
464 vm_role: { get_param: vm_role }
466 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
467 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
469 The example below depicts part of a Heat Orchestration Template that
470 uses the five of the ``OS::Nova::Server`` resource
471 ``metadata`` map value parameters discussed in this
472 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
479 description: VM Name for lb VM 0
482 description: Unique name for this VNF instance
485 description: Unique ID for this VNF instance
488 description: Unique name for this VNF Module instance
491 description: Unique ID for this VNF Module instance
494 description: Unique role for this VM
497 type: OS::Nova::Server
499 name: { get_param: lb_name_0 }
502 vnf_name: { get_param: vnf_name }
503 vnf_id: { get_param: vnf_id }
504 vf_module_name: { get_param: vf_module_name }
505 vf_module_id: { get_param: vf_module_id }
518 A VNF's Heat Orchestration Template's ``OS::Nova::Server Resource`` **MAY**
519 contain the metadata map value parameter ``vf_module_index``.
525 :validation_mode: static
528 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
529 ``metadata`` map value parameter ``vf_module_index`` **MUST**
530 be declared as type: ``number``.
536 :validation_mode: static
539 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
540 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
541 have parameter constraints defined.
547 :validation_mode: static
550 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
551 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
552 be enumerated in the Heat Orchestration Template's environment file.
558 :validation_mode: static
561 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
562 property ``metadata`` key/value pair ``vf_module_index`` is passed into a
563 Nested YAML file, the key/value pair
564 ``vf_module_index`` **MUST NOT** change.
570 :validation_mode: static
573 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
574 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
576 VNF's Volume Template; it is not supported.
578 The ``vf_module_index`` parameter indicates which instance of the module is
579 being deployed into the VNF.
580 This parameter may be used in cases where multiple instances of the same
581 incremental module may be instantiated for scaling purposes. The index
582 can be used in the Heat Orchestration Template for indexing into a
583 pseudo-constant array parameter when unique values are required for each
584 module instance, e.g., for fixed private IP addresses on VM types.
586 The ``vf_module_index`` will start at 0 for the first instance of a module
587 type. Subsequent instances of the same module type will receive the
588 lowest unused index. This means that indexes will be reused if a module
589 is deleted and re-added. As an example, if three copies of a module are
590 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
591 the second one is deleted (index 1), and then re-added, index 1 will be
596 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
597 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
598 OAM VM attaches to an internal control network which has a
599 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
600 environment file contains the four IP addresses that each successive OAM
601 VM will be assigned. The ``vf_module_index`` is used as the index to
602 determine the IP assignment.
609 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
618 description: Unique index for this VNF Module instance
621 description: VM Name for lb VM 0
624 description: Neutron UUID for the internal control network
626 type: comma_delimited_list
627 description: Fixed IP assignments for oam VMs on the internal control
631 type: OS::Nova::Server
633 name: { get_param: oam_vm_name_0 }
635 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
638 vf_module_index: { get_param: vf_module_index }
639 oam_vm_0_int_ctrl_port_0:
640 type: OS::Neutron::Port
642 network: { get_param: int_ctrl_net_id }
643 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
646 ^^^^^^^^^^^^^^^^^^^^^
654 A VNF's Heat Orchestration Template's OS::Nova::Server
655 Resource **SHOULD** contain the metadata map value parameter
662 :validation_mode: static
665 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
666 ``metadata`` map value parameter ``workload_context`` **MUST**
667 be declared as type: ``string``.
673 :validation_mode: static
676 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
677 property ``metadata`` key/value pair ``workload_context``
678 parameter ``workload_context`` **MUST NOT**
679 have parameter constraints defined.
685 :validation_mode: static
688 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
689 ``metadata`` map value parameter ``workload_context`` **MUST NOT**
690 be enumerated in the Heat Orchestration Template's environment file.
696 :validation_mode: static
699 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
700 ``metadata`` map value parameter ``workload_context`` is passed into a
702 file, the parameter name ``workload_context`` **MUST NOT** change.
704 The 'workload\_context' parameter value will be chosen by the Service Model
705 Distribution context client in VID and will be supplied to the
706 Heat Orchestration Template by ONAP at orchestration time.
708 *Example Parameter Definition*
715 description: Workload Context for this VNF instance
718 *Example OS::Nova::Server with metadata*
725 {vm-type}_server_{index}:
726 type: OS::Nova::Server
733 vnf_name: { get_param: vnf_name }
734 vnf_id: { get_param: vnf_id }
735 vf_module_name: { get_param: vf_module_name }
736 vf_module_id: { get_param: vf_module_id }
737 workload_context: {get_param: workload_context}
740 ^^^^^^^^^^^^^^^^^^^^^
748 A VNF's Heat Orchestration Template's OS::Nova::Server
749 Resource **SHOULD** contain the metadata map value parameter
750 'environment_context'.
756 :validation_mode: static
759 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
760 ``metadata`` map value parameter ``environment_context`` **MUST**
761 be declared as type: ``string``.
767 :validation_mode: static
770 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
771 ``metadata`` map value parameter ``environment_context`` **MUST NOT**
772 have parameter constraints defined.
778 :validation_mode: static
781 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
782 ``metadata`` map value parameter ``environment_context`` **MUST NOT**
783 be enumerated in the Heat Orchestration Template's environment file.
789 :validation_mode: static
792 If a VNF's Heat Orchestration Template's ``OS::Nova::Server Resource``
793 ``metadata`` map value parameter ``environment_context`` is passed into a
795 file, the parameter name ``environment_context`` **MUST NOT** change.
797 The 'environment_context' parameter value will be defined by the
798 service designer as part of the service model during the SDC
799 on-boarding process and will be supplied to the Heat Orchestration
800 Template by ONAP at orchestration time.
803 *Example Parameter Definition*
810 description: Environment Context for this VNF instance
813 *Example OS::Nova::Server with metadata*
820 {vm-type}_server_{index}:
821 type: OS::Nova::Server
828 vnf_name: { get_param: vnf_name }
829 vnf_id: { get_param: vnf_id }
830 vf_module_name: { get_param: vf_module_name }
831 vf_module_id: { get_param: vf_module_id }
832 workload_context: {get_param: workload_context}
833 environment_context: {get_param: environment_context }