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
125 property ``metadata`` **MUST**
126 contain the key/value pair ``vf_module_id``
127 and the value MUST be obtained via a ``get_param``.
133 :validation_mode: static
136 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
137 ``metadata`` key/value pair ``vf_module_id`` parameter **MUST**
138 be declared as ``vf_module_id`` and the parameter **MUST**
139 be defined as type: ``string``.
145 :validation_mode: static
148 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
149 ``metadata`` map value parameter ``vf_module_id`` **MUST NOT**
150 have parameter constraints defined.
156 :validation_mode: static
159 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
160 ``metadata`` key/value pair ``vf_module_id`` parameter ``vf_module_id``
162 be enumerated in the Heat Orchestration Template's environment file.
169 :validation_mode: static
172 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
174 ``metadata`` key/value pair ``vf_module_id`` is passed into a
176 file, the key/value pair name ``vf_module_id`` **MUST NOT** change.
179 *Example 'vf_module_id' Parameter Definition*
187 description: Unique ID for this VNF module instance
193 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vnf_name``
194 is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
196 is provided by ONAP to the VNF's Heat Orchestration
197 Template at orchestration time.
203 :validation_mode: static
206 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource **MUST**
207 contain the ``metadata`` map value parameter ``vnf_name``.
213 :validation_mode: static
216 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
217 property ``metadata`` key/value pair ``vnf_name`` parameter **MUST**
218 be declared as ``vnf_name`` and the parameter **MUST** be defined as
225 :validation_mode: static
228 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
229 property ``metadata`` key/value pair ``vnf_name``
230 parameter ``vnf_name`` **MUST NOT**
231 have parameter constraints defined.
237 :validation_mode: static
240 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
241 property ``metadata`` key/value pair ``vnf_name`` parameter
242 ``vnf_name`` **MUST NOT**
243 be enumerated in the Heat Orchestration Template's environment file.
249 :validation_mode: static
252 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
253 ``metadata`` map value parameter ``vnf_name`` is passed into a Nested YAML
254 file, the parameter name ``vnf_name`` **MUST NOT** change.
256 *Example 'vnf_name' Parameter Definition*
264 description: Unique name for this VNF instance
269 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter
271 is the deployment name of the heat stack created (e.g., ``<STACK_NAME>``)
273 VNF's Heat Orchestration template
274 in the command ``Heat stack-create``
275 (e.g., ``Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>``).
276 The ``vf_module_name`` (e.g., ``<STACK_NAME>`` is specified as
277 part of the orchestration process.
285 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
286 property ``metadata`` **SHOULD**
287 contain the key/value pair ``vf_module_name`` and the value **MUST**
288 be obtained via a ``get_param``.
294 :validation_mode: static
297 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
299 ``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be
300 declared as ``vf_module_name`` and the parameter **MUST**
301 be defined as type: ``string``.
307 :validation_mode: static
310 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
312 ``metadata`` key/value pair ``vf_module_name`` parameter ``vf_module_name``
313 **MUST NOT** have parameter constraints defined.
319 :validation_mode: static
322 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
323 ``metadata`` map value parameter ``vf_module_name`` **MUST NOT**
324 be enumerated in the Heat Orchestration Template's environment file.
330 :validation_mode: static
333 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
334 metadata map value parameter ``vf_module_name`` is passed into a Nested YAML
335 file, the parameter name ``vf_module_name`` **MUST NOT** change.
337 *Example 'vf_module_name' Parameter Definition*
345 description: Unique name for this VNF Module instance
350 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm-role``
351 is a ``metadata`` tag that describes the role of the Virtual Machine.
352 The ``vm_role`` is stored in ONAP’s A&AI module and is
353 available for use by other ONAP components and/or north bound systems.
361 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
363 contain the key/value pair ``vm_role`` and the value **MUST** be
367 - hard coded in the key/value pair ``vm_role``.
373 :validation_mode: static
376 A VNF's Heat Orchestration Template's OS::Nova::Server Resource
377 ``metadata`` map value parameter ``vm_role`` **MUST**
378 be declared as type: ``string``.
384 :validation_mode: static
387 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
388 property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
389 **MUST NOT** have parameter constraints defined.
395 :validation_mode: static
398 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
399 ``metadata`` map value parameter ``vm_role`` **MUST**
402 * enumerated in the VNF's Heat Orchestration Template's environment
405 * hard coded in the VNF's
406 Heat Orchestration Template's ``OS::Nova::Server`` Resource
407 ``metadata`` property.
410 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
417 :validation_mode: static
420 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
421 ``metadata`` map value parameter ``vm_role`` value **MUST**
422 only contain alphanumeric characters and underscores '_'.
428 :validation_mode: static
431 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
432 ``metadata`` map value parameter ``vm_role`` is passed into a Nested YAML
433 file, the parameter name ``vm_role`` **MUST NOT** change.
435 *Example 'vm_role' Parameter Definition*
443 description: Unique role for this VM
445 *Example: 'vm-role' Definition: Hard Coded in
446 OS::Nova::Resource metadata property*
453 type: OS::Nova::Server
459 *Example 'vm-role' Definition: Defined in Environment file
460 and retrieved via 'get_param'*
467 type: OS::Nova::Server
471 vm_role: { get_param: vm_role }
473 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
474 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
476 The example below depicts part of a Heat Orchestration Template that
477 uses the five of the ``OS::Nova::Server`` resource
478 ``metadata`` map value parameters discussed in this
479 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
486 description: VM Name for lb VM 0
489 description: Unique name for this VNF instance
492 description: Unique ID for this VNF instance
495 description: Unique name for this VNF Module instance
498 description: Unique ID for this VNF Module instance
501 description: Unique role for this VM
504 type: OS::Nova::Server
506 name: { get_param: lb_name_0 }
509 vnf_name: { get_param: vnf_name }
510 vnf_id: { get_param: vnf_id }
511 vf_module_name: { get_param: vf_module_name }
512 vf_module_id: { get_param: vf_module_id }
525 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
526 resource property ``metadata`` **MAY**
527 contain the key/value pair ``vf_module_index``
528 and the value **MUST** be obtained via a ``get_param``.
534 :validation_mode: static
537 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
538 ``metadata`` map value parameter ``vf_module_index`` **MUST**
539 be declared as type: ``number``.
545 :validation_mode: static
549 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
550 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
551 have parameter constraints defined.
557 :validation_mode: static
560 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
562 ``metadata`` key/value pair ``vf_module_index`` parameter
563 ``vf_module_index`` **MUST NOT**
564 be enumerated in the Heat Orchestration Template's environment file.
570 :validation_mode: static
573 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
574 property ``metadata`` key/value pair ``vf_module_index`` is passed into a
575 Nested YAML file, the key/value pair
576 ``vf_module_index`` **MUST NOT** change.
582 :validation_mode: static
585 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
586 ``metadata`` map value parameter ``vf_module_index`` **MUST NOT**
588 VNF's Volume Template; it is not supported.
590 The ``vf_module_index`` parameter indicates which instance of the module is
591 being deployed into the VNF.
592 This parameter may be used in cases where multiple instances of the same
593 incremental module may be instantiated for scaling purposes. The index
594 can be used in the Heat Orchestration Template for indexing into a
595 pseudo-constant array parameter when unique values are required for each
596 module instance, e.g., for fixed private IP addresses on VM types.
598 The ``vf_module_index`` will start at 0 for the first instance of a module
599 type. Subsequent instances of the same module type will receive the
600 lowest unused index. This means that indexes will be reused if a module
601 is deleted and re-added. As an example, if three copies of a module are
602 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
603 the second one is deleted (index 1), and then re-added, index 1 will be
608 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
609 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
610 OAM VM attaches to an internal control network which has a
611 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
612 environment file contains the four IP addresses that each successive OAM
613 VM will be assigned. The ``vf_module_index`` is used as the index to
614 determine the IP assignment.
621 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
630 description: Unique index for this VNF Module instance
633 description: VM Name for lb VM 0
636 description: Neutron UUID for the internal control network
638 type: comma_delimited_list
639 description: Fixed IP assignments for oam VMs on the internal control
643 type: OS::Nova::Server
645 name: { get_param: oam_vm_name_0 }
647 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
650 vf_module_index: { get_param: vf_module_index }
651 oam_vm_0_int_ctrl_port_0:
652 type: OS::Neutron::Port
654 network: { get_param: int_ctrl_net_id }
655 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
658 ^^^^^^^^^^^^^^^^^^^^^
666 A VNF's Heat Orchestration Template's OS::Nova::Server
667 Resource **SHOULD** contain the metadata map value parameter
674 :validation_mode: static
677 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
678 ``metadata`` map value parameter ``workload_context`` **MUST**
679 be declared as type: ``string``.
685 :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 have parameter constraints defined.
697 :validation_mode: static
701 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
702 property ``metadata`` key/value pair ``workload_context``
703 parameter ``workload_context`` **MUST NOT**
704 be enumerated in the Heat Orchestration Template's environment file.
710 :validation_mode: static
713 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
714 property ``metadata`` key/value pair ``workload_context``
715 is passed into a Nested YAML
716 file, the key/value pair name ``workload_context`` **MUST NOT** change.
719 The 'workload\_context' parameter value will be chosen by the Service Model
720 Distribution context client in VID and will be supplied to the
721 Heat Orchestration Template by ONAP at orchestration time.
723 *Example Parameter Definition*
730 description: Workload Context for this VNF instance
733 *Example OS::Nova::Server with metadata*
740 {vm-type}_server_{index}:
741 type: OS::Nova::Server
748 vnf_name: { get_param: vnf_name }
749 vnf_id: { get_param: vnf_id }
750 vf_module_name: { get_param: vf_module_name }
751 vf_module_id: { get_param: vf_module_id }
752 workload_context: {get_param: workload_context}
755 ^^^^^^^^^^^^^^^^^^^^^
763 A VNF's Heat Orchestration Template's OS::Nova::Server
764 Resource **SHOULD** contain the metadata map value parameter
765 'environment_context'.
771 :validation_mode: static
774 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
775 ``metadata`` map value parameter ``environment_context`` **MUST**
776 be declared as type: ``string``.
782 :validation_mode: static
785 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
786 ``metadata`` map value parameter ``environment_context`` **MUST NOT**
787 have parameter constraints defined.
793 :validation_mode: static
796 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
797 ``metadata`` map value parameter ``environment_context`` **MUST NOT**
798 be enumerated in the Heat Orchestration Template's environment file.
804 :validation_mode: static
807 If a VNF's Heat Orchestration Template's ``OS::Nova::Server Resource``
808 ``metadata`` map value parameter ``environment_context`` is passed into a
810 file, the parameter name ``environment_context`` **MUST NOT** change.
812 The 'environment_context' parameter value will be defined by the
813 service designer as part of the service model during the SDC
814 on-boarding process and will be supplied to the Heat Orchestration
815 Template by ONAP at orchestration time.
818 *Example Parameter Definition*
825 description: Environment Context for this VNF instance
828 *Example OS::Nova::Server with metadata*
835 {vm-type}_server_{index}:
836 type: OS::Nova::Server
843 vnf_name: { get_param: vnf_name }
844 vnf_id: { get_param: vnf_id }
845 vf_module_name: { get_param: vf_module_name }
846 vf_module_id: { get_param: vf_module_id }
847 workload_context: {get_param: workload_context}
848 environment_context: {get_param: environment_context }