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.
250 :validation_mode: static
253 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
254 property ``metadata`` **SHOULD**
255 contain the key/value pair ``vf_module_name`` and the value **MUST**
256 be obtained via a ``get_param``.
262 :validation_mode: static
265 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
267 ``metadata`` key/value pair ``vf_module_name`` parameter **MUST** be
268 declared as ``vf_module_name`` and the parameter **MUST**
269 be defined as type: ``string``.
275 :validation_mode: static
278 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
280 ``metadata`` key/value pair ``vf_module_name`` parameter ``vf_module_name``
281 **MUST NOT** have parameter constraints defined.
287 :validation_mode: static
291 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
292 property ``metadata`` key/value pair ``vf_module_name``
293 parameter ``vf_module_name`` **MUST NOT**
294 be enumerated in the Heat Orchestration Template's environment file.
297 *Example 'vf_module_name' Parameter Definition*
305 description: Unique name for this VNF Module instance
310 The ``OS::Nova::Server`` Resource ``metadata`` map value parameter ``vm_role``
311 is a ``metadata`` tag that describes the role of the Virtual Machine.
319 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
321 contain the key/value pair ``vm_role`` and the value **MUST** be
325 - hard coded in the key/value pair ``vm_role``.
331 :validation_mode: none
334 If a VNF's Heat Orchestration Template's ``OS::Nova::Server``
336 ``metadata`` key/value pair ``vm_role`` value is obtained via
337 ``get_param``, the parameter **MAY** be declared as
339 * ``vm_role`` and the parameter defined as ``type: string``.
340 * ``vm_roles`` and the parameter defined as ``type: comma_delimited_list``.
341 * ``{vm-type}_vm_role`` and the parameter defined as ``type: string``.
347 :validation_mode: static
350 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
351 property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
352 **MUST NOT** have parameter constraints defined.
354 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
361 :validation_mode: static
364 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
365 property ``metadata`` key/value pair ``vm_role`` value **MUST**
366 only contain alphanumeric characters and underscores (i.e., '_').
369 *Example 'vm_role' Parameter Definition*
377 description: Unique role for this VM
379 *Example: 'vm_role' Definition: Hard Coded in
380 OS::Nova::Resource metadata property*
387 type: OS::Nova::Server
393 *Example 'vm_role' Definition: Defined in Environment file
394 and retrieved via 'get_param'*
401 type: OS::Nova::Server
405 vm_role: { get_param: vm_role }
407 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
408 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
410 The example below depicts part of a Heat Orchestration Template that
411 uses the five of the ``OS::Nova::Server`` resource
412 ``metadata`` map value parameters discussed in this
413 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
420 description: VM Name for lb VM 0
423 description: Unique name for this VNF instance
426 description: Unique ID for this VNF instance
429 description: Unique name for this VNF Module instance
432 description: Unique ID for this VNF Module instance
435 description: Unique role for this VM
438 type: OS::Nova::Server
440 name: { get_param: lb_name_0 }
443 vnf_name: { get_param: vnf_name }
444 vnf_id: { get_param: vnf_id }
445 vf_module_name: { get_param: vf_module_name }
446 vf_module_id: { get_param: vf_module_id }
458 :validation_mode: static
460 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
461 resource property ``metadata`` **MAY**
462 contain the key/value pair ``vf_module_index``
463 and the value **MUST** be obtained via a ``get_param``.
469 :validation_mode: static
472 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
474 ``metadata`` key/value pair ``vf_module_index`` parameter **MUST**
475 be declared as ``vf_module_index`` and the parameter **MUST** be
476 defined as type: ``number``.
483 :validation_mode: static
487 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
488 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
489 have parameter constraints defined.
495 :validation_mode: static
498 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
500 ``metadata`` key/value pair ``vf_module_index`` parameter
501 ``vf_module_index`` **MUST NOT**
502 be enumerated in the Heat Orchestration Template's environment file.
508 :validation_mode: static
511 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
512 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
513 be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be
514 used in VNF's Volume template;
517 The ``vf_module_index`` parameter indicates which instance of the module is
518 being deployed into the VNF.
519 This parameter may be used in cases where multiple instances of the same
520 incremental module may be instantiated for scaling purposes. The index
521 can be used in the Heat Orchestration Template for indexing into a
522 pseudo-constant array parameter when unique values are required for each
523 module instance, e.g., for fixed private IP addresses on VM types.
525 The ``vf_module_index`` will start at 0 for the first instance of a module
526 type. Subsequent instances of the same module type will receive the
527 lowest unused index. This means that indexes will be reused if a module
528 is deleted and re-added. As an example, if three copies of a module are
529 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
530 the second one is deleted (index 1), and then re-added, index 1 will be
535 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
536 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
537 OAM VM attaches to an internal control network which has a
538 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
539 environment file contains the four IP addresses that each successive OAM
540 VM will be assigned. The ``vf_module_index`` is used as the index to
541 determine the IP assignment.
548 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
557 description: Unique index for this VNF Module instance
560 description: VM Name for lb VM 0
563 description: Neutron UUID for the internal control network
565 type: comma_delimited_list
566 description: Fixed IP assignments for oam VMs on the internal control
570 type: OS::Nova::Server
572 name: { get_param: oam_vm_name_0 }
574 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
577 vf_module_index: { get_param: vf_module_index }
578 oam_vm_0_int_ctrl_port_0:
579 type: OS::Neutron::Port
581 network: { get_param: int_ctrl_net_id }
582 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
585 ^^^^^^^^^^^^^^^^^^^^^
593 A VNF's Heat Orchestration Template's OS::Nova::Server
594 Resource **SHOULD** contain the metadata map value parameter
601 :validation_mode: static
604 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
605 property ``metadata`` key/value pair ``workload_context``
607 be declared as ``workload_context`` and the parameter **MUST**
608 be defined as type: ``string``.
614 :validation_mode: static
617 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
618 property ``metadata`` key/value pair ``workload_context``
619 parameter ``workload_context`` **MUST NOT**
620 have parameter constraints defined.
626 :validation_mode: static
630 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
631 property ``metadata`` key/value pair ``workload_context``
632 parameter ``workload_context`` **MUST NOT**
633 be enumerated in the Heat Orchestration Template's environment file.
635 The 'workload\_context' parameter value will be chosen by the Service Model
636 Distribution context client in VID and will be supplied to the
637 Heat Orchestration Template by ONAP at orchestration time.
639 *Example Parameter Definition*
646 description: Workload Context for this VNF instance
649 *Example OS::Nova::Server with metadata*
656 {vm-type}_server_{index}:
657 type: OS::Nova::Server
664 vnf_name: { get_param: vnf_name }
665 vnf_id: { get_param: vnf_id }
666 vf_module_name: { get_param: vf_module_name }
667 vf_module_id: { get_param: vf_module_id }
668 workload_context: {get_param: workload_context}
671 ^^^^^^^^^^^^^^^^^^^^^
679 A VNF's Heat Orchestration Template's OS::Nova::Server
680 Resource **SHOULD** contain the metadata map value parameter
681 'environment_context'.
687 :validation_mode: static
690 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
691 property ``metadata`` key/value pair ``environment_context``
692 parameter **MUST** be declared as ``environment_context`` and the
693 parameter type **MUST** be defined as type: ``string``.
699 :validation_mode: static
702 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
703 property ``metadata``key/value pair ``environment_context``
704 parameter ``environment_context`` **MUST NOT**
705 have parameter constraints defined.
711 :validation_mode: static
714 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
716 ``metadata`` key/value pair ``environment_context`` **MUST NOT**
717 be enumerated in the Heat Orchestration Template's environment file.
719 The 'environment_context' parameter value will be defined by the
720 service designer as part of the service model during the SDC
721 on-boarding process and will be supplied to the Heat Orchestration
722 Template by ONAP at orchestration time.
725 *Example Parameter Definition*
732 description: Environment Context for this VNF instance
735 *Example OS::Nova::Server with metadata*
742 {vm-type}_server_{index}:
743 type: OS::Nova::Server
750 vnf_name: { get_param: vnf_name }
751 vnf_id: { get_param: vnf_id }
752 vf_module_name: { get_param: vf_module_name }
753 vf_module_id: { get_param: vf_module_id }
754 workload_context: {get_param: workload_context}
755 environment_context: {get_param: environment_context }