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.
406 :validation_mode: static
409 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` Resource
410 ``metadata`` map value parameter ``vm_role`` **MUST**
413 * enumerated in the VNF's Heat Orchestration Template's environment
416 * hard coded in the VNF's
417 Heat Orchestration Template's ``OS::Nova::Server`` Resource
418 ``metadata`` property.
421 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
428 :validation_mode: static
431 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
432 property ``metadata`` key/value pair ``vm_role`` value **MUST**
433 only contain alphanumeric characters and underscores (i.e., '_').
440 :validation_mode: static
443 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
444 property ``metadata`` key/value pair ``vm_role`` is passed into a Nested
446 file, the key/value pair name ``vm_role`` **MUST NOT** change.
449 *Example 'vm_role' Parameter Definition*
457 description: Unique role for this VM
459 *Example: 'vm-role' Definition: Hard Coded in
460 OS::Nova::Resource metadata property*
467 type: OS::Nova::Server
473 *Example 'vm-role' Definition: Defined in Environment file
474 and retrieved via 'get_param'*
481 type: OS::Nova::Server
485 vm_role: { get_param: vm_role }
487 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
488 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
490 The example below depicts part of a Heat Orchestration Template that
491 uses the five of the ``OS::Nova::Server`` resource
492 ``metadata`` map value parameters discussed in this
493 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
500 description: VM Name for lb VM 0
503 description: Unique name for this VNF instance
506 description: Unique ID for this VNF instance
509 description: Unique name for this VNF Module instance
512 description: Unique ID for this VNF Module instance
515 description: Unique role for this VM
518 type: OS::Nova::Server
520 name: { get_param: lb_name_0 }
523 vnf_name: { get_param: vnf_name }
524 vnf_id: { get_param: vnf_id }
525 vf_module_name: { get_param: vf_module_name }
526 vf_module_id: { get_param: vf_module_id }
539 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
540 resource property ``metadata`` **MAY**
541 contain the key/value pair ``vf_module_index``
542 and the value **MUST** be obtained via a ``get_param``.
548 :validation_mode: static
551 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
553 ``metadata`` key/value pair ``vf_module_index`` parameter **MUST**
554 be declared as ``vf_module_index`` and the parameter **MUST** be
555 defined as type: ``number``.
562 :validation_mode: static
566 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
567 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
568 have parameter constraints defined.
574 :validation_mode: static
577 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
579 ``metadata`` key/value pair ``vf_module_index`` parameter
580 ``vf_module_index`` **MUST NOT**
581 be enumerated in the Heat Orchestration Template's environment file.
587 :validation_mode: static
590 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
591 property ``metadata`` key/value pair ``vf_module_index`` is passed into a
592 Nested YAML file, the key/value pair
593 ``vf_module_index`` **MUST NOT** change.
599 :validation_mode: static
602 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
603 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
604 be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be
605 used in VNF's Volume template;
608 The ``vf_module_index`` parameter indicates which instance of the module is
609 being deployed into the VNF.
610 This parameter may be used in cases where multiple instances of the same
611 incremental module may be instantiated for scaling purposes. The index
612 can be used in the Heat Orchestration Template for indexing into a
613 pseudo-constant array parameter when unique values are required for each
614 module instance, e.g., for fixed private IP addresses on VM types.
616 The ``vf_module_index`` will start at 0 for the first instance of a module
617 type. Subsequent instances of the same module type will receive the
618 lowest unused index. This means that indexes will be reused if a module
619 is deleted and re-added. As an example, if three copies of a module are
620 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
621 the second one is deleted (index 1), and then re-added, index 1 will be
626 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
627 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
628 OAM VM attaches to an internal control network which has a
629 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
630 environment file contains the four IP addresses that each successive OAM
631 VM will be assigned. The ``vf_module_index`` is used as the index to
632 determine the IP assignment.
639 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
648 description: Unique index for this VNF Module instance
651 description: VM Name for lb VM 0
654 description: Neutron UUID for the internal control network
656 type: comma_delimited_list
657 description: Fixed IP assignments for oam VMs on the internal control
661 type: OS::Nova::Server
663 name: { get_param: oam_vm_name_0 }
665 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
668 vf_module_index: { get_param: vf_module_index }
669 oam_vm_0_int_ctrl_port_0:
670 type: OS::Neutron::Port
672 network: { get_param: int_ctrl_net_id }
673 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
676 ^^^^^^^^^^^^^^^^^^^^^
684 A VNF's Heat Orchestration Template's OS::Nova::Server
685 Resource **SHOULD** contain the metadata map value parameter
692 :validation_mode: static
695 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
696 property ``metadata`` key/value pair ``workload_context``
698 be declared as ``workload_context`` and the parameter **MUST**
699 be defined as type: ``string``.
705 :validation_mode: static
708 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
709 property ``metadata`` key/value pair ``workload_context``
710 parameter ``workload_context`` **MUST NOT**
711 have parameter constraints defined.
717 :validation_mode: static
721 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
722 property ``metadata`` key/value pair ``workload_context``
723 parameter ``workload_context`` **MUST NOT**
724 be enumerated in the Heat Orchestration Template's environment file.
730 :validation_mode: static
733 If a VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
734 property ``metadata`` key/value pair ``workload_context``
735 is passed into a Nested YAML
736 file, the key/value pair name ``workload_context`` **MUST NOT** change.
739 The 'workload\_context' parameter value will be chosen by the Service Model
740 Distribution context client in VID and will be supplied to the
741 Heat Orchestration Template by ONAP at orchestration time.
743 *Example Parameter Definition*
750 description: Workload Context for this VNF instance
753 *Example OS::Nova::Server with metadata*
760 {vm-type}_server_{index}:
761 type: OS::Nova::Server
768 vnf_name: { get_param: vnf_name }
769 vnf_id: { get_param: vnf_id }
770 vf_module_name: { get_param: vf_module_name }
771 vf_module_id: { get_param: vf_module_id }
772 workload_context: {get_param: workload_context}
775 ^^^^^^^^^^^^^^^^^^^^^
783 A VNF's Heat Orchestration Template's OS::Nova::Server
784 Resource **SHOULD** contain the metadata map value parameter
785 'environment_context'.
791 :validation_mode: static
794 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
795 property ``metadata`` key/value pair ``environment_context``
796 parameter **MUST** be declared as ``environment_context`` and the
797 parameter type **MUST** be defined as type: ``string``.
803 :validation_mode: static
806 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
807 property ``metadata``key/value pair ``environment_context``
808 parameter ``environment_context`` **MUST NOT**
809 have parameter constraints defined.
815 :validation_mode: static
818 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
820 ``metadata`` key/value pair ``environment_context`` **MUST NOT**
821 be enumerated in the Heat Orchestration Template's environment file.
827 :validation_mode: static
830 If a VNF's Heat Orchestration Template's ``OS::Nova::Server Resource``
831 ``metadata`` map value parameter ``environment_context`` is passed into a
833 file, the parameter name ``environment_context`` **MUST NOT** change.
835 The 'environment_context' parameter value will be defined by the
836 service designer as part of the service model during the SDC
837 on-boarding process and will be supplied to the Heat Orchestration
838 Template by ONAP at orchestration time.
841 *Example Parameter Definition*
848 description: Environment Context for this VNF instance
851 *Example OS::Nova::Server with metadata*
858 {vm-type}_server_{index}:
859 type: OS::Nova::Server
866 vnf_name: { get_param: vnf_name }
867 vnf_id: { get_param: vnf_id }
868 vf_module_name: { get_param: vf_module_name }
869 vf_module_id: { get_param: vf_module_id }
870 workload_context: {get_param: workload_context}
871 environment_context: {get_param: environment_context }