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
135 ``metadata`` map value parameter ``vf_module_id`` **MUST**
136 be declared as type: ``string``.
142 :validation_mode: static
145 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
146 ``metadata`` map value parameter ``vf_module_id`` **MUST NOT**
147 have parameter constraints defined.
153 :validation_mode: static
156 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
157 ``metadata`` map value parameter ``vf_module_id`` **MUST NOT**
158 be enumerated in the Heat Orchestration Template's environment file.
164 :validation_mode: static
167 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
169 ``metadata`` key/value pair ``vf_module_id`` is passed into a
171 file, the key/value pair name ``vf_module_id`` **MUST NOT** change.
174 *Example 'vf_module_id' Parameter Definition*
182 description: Unique ID for this VNF module instance
188 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name``
189 is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
191 is provided by ONAP to the VNF's Heat Orchestration
192 Template at orchestration time.
198 :validation_mode: static
201 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MUST**
202 contain the ``metadata`` map value parameter ``vnf_name``.
208 :validation_mode: static
211 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
212 ``metadata`` map value parameter ``vnf_name`` **MUST**
213 be declared as type: ``string``.
219 :validation_mode: static
222 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
223 ``metadata`` map value parameter ``vnf_name`` **MUST NOT**
224 have parameter constraints defined.
230 :validation_mode: static
233 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
234 property ``metadata`` key/value pair ``vnf_name`` parameter
235 ``vnf_name`` **MUST NOT**
236 be enumerated in the Heat Orchestration Template's environment file.
242 :validation_mode: static
245 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
246 ``metadata`` map value parameter ``vnf_name`` is passed into a Nested YAML
247 file, the parameter name ``vnf_name`` **MUST NOT** change.
249 *Example 'vnf_name' Parameter Definition*
257 description: Unique name for this VNF instance
262 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter
264 is the deployment name of the heat stack created (e.g., ``<STACK_NAME>``)
266 VNF's Heat Orchestration template
267 in the command ``Heat stack-create``
268 (e.g., ``Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>``).
269 The ``vf_module_name`` (e.g., ``<STACK_NAME>`` is specified as
270 part of the orchestration process.
278 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
280 contain the ``metadata`` map value parameter ``vf_module_name``.
286 :validation_mode: static
289 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
290 ``metadata`` map value parameter ``vf_module_name`` **MUST**
291 be declared as type: ``string``.
297 :validation_mode: static
300 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
301 ``metadata`` map value parameter ``vf_module_name`` **MUST NOT**
302 have parameter constraints defined.
308 :validation_mode: static
311 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
312 ``metadata`` map value parameter ``vf_module_name`` **MUST NOT**
313 be enumerated in the Heat Orchestration Template's environment file.
319 :validation_mode: static
322 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
323 metadata map value parameter ``vf_module_name`` is passed into a Nested YAML
324 file, the parameter name ``vf_module_name`` **MUST NOT** change.
326 *Example 'vf_module_name' Parameter Definition*
334 description: Unique name for this VNF Module instance
339 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm-role``
340 is a ``metadata`` tag that describes the role of the Virtual Machine.
341 The ``vm_role`` is stored in ONAP’s A&AI module and is
342 available for use by other ONAP components and/or north bound systems.
350 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
352 contain the key/value pair ``vm_role`` and the value **MUST** be
356 - hard coded in the key/value pair ``vm_role``.
362 :validation_mode: static
365 A VNF's Heat Orchestration Template's OS::Nova::Server Resource
366 ``metadata`` map value parameter ``vm_role`` **MUST**
367 be declared as type: ``string``.
373 :validation_mode: static
376 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
377 ``metadata`` map value parameter ``vm_role`` **MUST NOT**
378 have parameter constraints defined.
384 :validation_mode: static
387 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
388 ``metadata`` map value parameter ``vm_role`` **MUST**
391 * enumerated in the VNF's Heat Orchestration Template's environment
394 * hard coded in the VNF's
395 Heat Orchestration Template's ``OS::Nova::Server`` Resource
396 ``metadata`` property.
399 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
406 :validation_mode: static
409 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
410 ``metadata`` map value parameter ``vm_role`` value **MUST**
411 only contain alphanumeric characters and underscores '_'.
417 :validation_mode: static
420 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
421 ``metadata`` map value parameter ``vm_role`` is passed into a Nested YAML
422 file, the parameter name ``vm_role`` **MUST NOT** change.
424 *Example 'vm_role' Parameter Definition*
432 description: Unique role for this VM
434 *Example: 'vm-role' Definition: Hard Coded in
435 OS::Nova::Resource metadata property*
442 type: OS::Nova::Server
448 *Example 'vm-role' Definition: Defined in Environment file
449 and retrieved via 'get_param'*
456 type: OS::Nova::Server
460 vm_role: { get_param: vm_role }
462 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
463 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
465 The example below depicts part of a Heat Orchestration Template that
466 uses the five of the ``OS::Nova::Server`` resource
467 ``metadata`` map value parameters discussed in this
468 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
475 description: VM Name for lb VM 0
478 description: Unique name for this VNF instance
481 description: Unique ID for this VNF instance
484 description: Unique name for this VNF Module instance
487 description: Unique ID for this VNF Module instance
490 description: Unique role for this VM
493 type: OS::Nova::Server
495 name: { get_param: lb_name_0 }
498 vnf_name: { get_param: vnf_name }
499 vnf_id: { get_param: vnf_id }
500 vf_module_name: { get_param: vf_module_name }
501 vf_module_id: { get_param: vf_module_id }
514 A VNF's Heat Orchestration Template's ``OS::Nova::Server Resource`` **MAY**
515 contain the metadata map value parameter ``vf_module_index``.
521 :validation_mode: static
524 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
525 ``metadata`` map value parameter ``vf_module_index`` **MUST**
526 be declared as type: ``number``.
532 :validation_mode: static
535 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
536 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
537 have parameter constraints defined.
543 :validation_mode: static
546 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
547 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
548 be enumerated in the Heat Orchestration Template's environment file.
554 :validation_mode: static
557 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
558 ``metadata`` map value parameter ``vf_module_index`` is passed into a
560 file, the parameter name ``vf_module_index`` **MUST NOT** change.
566 :validation_mode: static
569 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
570 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
572 VNF's Volume Template; it is not supported.
574 The ``vf_module_index`` parameter indicates which instance of the module is
575 being deployed into the VNF.
576 This parameter may be used in cases where multiple instances of the same
577 incremental module may be instantiated for scaling purposes. The index
578 can be used in the Heat Orchestration Template for indexing into a
579 pseudo-constant array parameter when unique values are required for each
580 module instance, e.g., for fixed private IP addresses on VM types.
582 The ``vf_module_index`` will start at 0 for the first instance of a module
583 type. Subsequent instances of the same module type will receive the
584 lowest unused index. This means that indexes will be reused if a module
585 is deleted and re-added. As an example, if three copies of a module are
586 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
587 the second one is deleted (index 1), and then re-added, index 1 will be
592 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
593 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
594 OAM VM attaches to an internal control network which has a
595 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
596 environment file contains the four IP addresses that each successive OAM
597 VM will be assigned. The ``vf_module_index`` is used as the index to
598 determine the IP assignment.
605 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
614 description: Unique index for this VNF Module instance
617 description: VM Name for lb VM 0
620 description: Neutron UUID for the internal control network
622 type: comma_delimited_list
623 description: Fixed IP assignments for oam VMs on the internal control
627 type: OS::Nova::Server
629 name: { get_param: oam_vm_name_0 }
631 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
634 vf_module_index: { get_param: vf_module_index }
635 oam_vm_0_int_ctrl_port_0:
636 type: OS::Neutron::Port
638 network: { get_param: int_ctrl_net_id }
639 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
642 ^^^^^^^^^^^^^^^^^^^^^
650 A VNF's Heat Orchestration Template's OS::Nova::Server
651 Resource **SHOULD** contain the metadata map value parameter
658 :validation_mode: static
661 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
662 ``metadata`` map value parameter ``workload_context`` **MUST**
663 be declared as type: ``string``.
669 :validation_mode: static
672 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
673 ``metadata`` map value parameter ``workload_context`` **MUST NOT**
674 have parameter constraints defined.
680 :validation_mode: static
683 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
684 ``metadata`` map value parameter ``workload_context`` **MUST NOT**
685 be enumerated in the Heat Orchestration Template's environment file.
691 :validation_mode: static
694 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
695 ``metadata`` map value parameter ``workload_context`` is passed into a
697 file, the parameter name ``workload_context`` **MUST NOT** change.
699 The 'workload\_context' parameter value will be chosen by the Service Model
700 Distribution context client in VID and will be supplied to the
701 Heat Orchestration Template by ONAP at orchestration time.
703 *Example Parameter Definition*
710 description: Workload Context for this VNF instance
713 *Example OS::Nova::Server with metadata*
720 {vm-type}_server_{index}:
721 type: OS::Nova::Server
728 vnf_name: { get_param: vnf_name }
729 vnf_id: { get_param: vnf_id }
730 vf_module_name: { get_param: vf_module_name }
731 vf_module_id: { get_param: vf_module_id }
732 workload_context: {get_param: workload_context}
735 ^^^^^^^^^^^^^^^^^^^^^
743 A VNF's Heat Orchestration Template's OS::Nova::Server
744 Resource **SHOULD** contain the metadata map value parameter
745 'environment_context'.
751 :validation_mode: static
754 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
755 ``metadata`` map value parameter ``environment_context`` **MUST**
756 be declared as type: ``string``.
762 :validation_mode: static
765 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
766 ``metadata`` map value parameter ``environment_context`` **MUST NOT**
767 have parameter constraints defined.
773 :validation_mode: static
776 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
777 ``metadata`` map value parameter ``environment_context`` **MUST NOT**
778 be enumerated in the Heat Orchestration Template's environment file.
784 :validation_mode: static
787 If a VNF's Heat Orchestration Template's ``OS::Nova::Server Resource``
788 ``metadata`` map value parameter ``environment_context`` is passed into a
790 file, the parameter name ``environment_context`` **MUST NOT** change.
792 The 'environment_context' parameter value will be defined by the
793 service designer as part of the service model during the SDC
794 on-boarding process and will be supplied to the Heat Orchestration
795 Template by ONAP at orchestration time.
798 *Example Parameter Definition*
805 description: Environment Context for this VNF instance
808 *Example OS::Nova::Server with metadata*
815 {vm-type}_server_{index}:
816 type: OS::Nova::Server
823 vnf_name: { get_param: vnf_name }
824 vnf_id: { get_param: vnf_id }
825 vf_module_name: { get_param: vf_module_name }
826 vf_module_id: { get_param: vf_module_id }
827 workload_context: {get_param: workload_context}
828 environment_context: {get_param: environment_context }