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.
312 The ``vm_role`` is stored in ONAP’s A&AI module and is
313 available for use by other ONAP components and/or north bound systems.
321 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource property
323 contain the key/value pair ``vm_role`` and the value **MUST** be
327 - hard coded in the key/value pair ``vm_role``.
333 :validation_mode: static
336 If a VNF's Heat Orchestration Template's ``OS::Nova::Server``
338 ``metadata`` key/value pair ``vm_role`` value is obtained via
339 ``get_param``, the parameter **MUST** be declared as ``vm_role``
340 and the parameter **MUST** be defined as type: ``string``.
346 :validation_mode: static
349 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
350 property ``metadata`` key/value pair ``vm_role`` parameter ``vm_role``
351 **MUST NOT** have parameter constraints defined.
353 Defining the ``vm_role`` as the ``{vm-type}`` is a recommended convention
360 :validation_mode: static
363 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
364 property ``metadata`` key/value pair ``vm_role`` value **MUST**
365 only contain alphanumeric characters and underscores (i.e., '_').
368 *Example 'vm_role' Parameter Definition*
376 description: Unique role for this VM
378 *Example: 'vm-role' Definition: Hard Coded in
379 OS::Nova::Resource metadata property*
386 type: OS::Nova::Server
392 *Example 'vm-role' Definition: Defined in Environment file
393 and retrieved via 'get_param'*
400 type: OS::Nova::Server
404 vm_role: { get_param: vm_role }
406 Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
407 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
409 The example below depicts part of a Heat Orchestration Template that
410 uses the five of the ``OS::Nova::Server`` resource
411 ``metadata`` map value parameters discussed in this
412 section. The ``{vm-type}`` has been defined as ``lb`` for load balancer.
419 description: VM Name for lb VM 0
422 description: Unique name for this VNF instance
425 description: Unique ID for this VNF instance
428 description: Unique name for this VNF Module instance
431 description: Unique ID for this VNF Module instance
434 description: Unique role for this VM
437 type: OS::Nova::Server
439 name: { get_param: lb_name_0 }
442 vnf_name: { get_param: vnf_name }
443 vnf_id: { get_param: vnf_id }
444 vf_module_name: { get_param: vf_module_name }
445 vf_module_id: { get_param: vf_module_id }
457 :validation_mode: static
459 A VNF's Heat Orchestration Template's ``OS::Nova::Server``
460 resource property ``metadata`` **MAY**
461 contain the key/value pair ``vf_module_index``
462 and the value **MUST** be obtained via a ``get_param``.
468 :validation_mode: static
471 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
473 ``metadata`` key/value pair ``vf_module_index`` parameter **MUST**
474 be declared as ``vf_module_index`` and the parameter **MUST** be
475 defined as type: ``number``.
482 :validation_mode: static
486 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
487 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
488 have parameter constraints defined.
494 :validation_mode: static
497 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
499 ``metadata`` key/value pair ``vf_module_index`` parameter
500 ``vf_module_index`` **MUST NOT**
501 be enumerated in the Heat Orchestration Template's environment file.
507 :validation_mode: static
510 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
511 property ``metadata`` key/value pair ``vf_module_index`` **MUST NOT**
512 be used in a ``OS::Cinder::Volume`` resource and **MUST NOT** be
513 used in VNF's Volume template;
516 The ``vf_module_index`` parameter indicates which instance of the module is
517 being deployed into the VNF.
518 This parameter may be used in cases where multiple instances of the same
519 incremental module may be instantiated for scaling purposes. The index
520 can be used in the Heat Orchestration Template for indexing into a
521 pseudo-constant array parameter when unique values are required for each
522 module instance, e.g., for fixed private IP addresses on VM types.
524 The ``vf_module_index`` will start at 0 for the first instance of a module
525 type. Subsequent instances of the same module type will receive the
526 lowest unused index. This means that indexes will be reused if a module
527 is deleted and re-added. As an example, if three copies of a module are
528 deployed with ``vf_module_index`` values of 0, 1, and 2 then subsequently
529 the second one is deleted (index 1), and then re-added, index 1 will be
534 In this example, the ``{vm-type}`` has been defined as ``oam_vm`` to represent
535 an OAM VM. An incremental heat module is used to deploy the OAM VM. The
536 OAM VM attaches to an internal control network which has a
537 ``{network-role}`` of ``ctrl``. A maximum of four OAM VMs can be deployed. The
538 environment file contains the four IP addresses that each successive OAM
539 VM will be assigned. The ``vf_module_index`` is used as the index to
540 determine the IP assignment.
547 oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
556 description: Unique index for this VNF Module instance
559 description: VM Name for lb VM 0
562 description: Neutron UUID for the internal control network
564 type: comma_delimited_list
565 description: Fixed IP assignments for oam VMs on the internal control
569 type: OS::Nova::Server
571 name: { get_param: oam_vm_name_0 }
573 - port: { get_resource: oam_vm_0_int_ctrl_port_0 }
576 vf_module_index: { get_param: vf_module_index }
577 oam_vm_0_int_ctrl_port_0:
578 type: OS::Neutron::Port
580 network: { get_param: int_ctrl_net_id }
581 fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
584 ^^^^^^^^^^^^^^^^^^^^^
592 A VNF's Heat Orchestration Template's OS::Nova::Server
593 Resource **SHOULD** contain the metadata map value parameter
600 :validation_mode: static
603 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
604 property ``metadata`` key/value pair ``workload_context``
606 be declared as ``workload_context`` and the parameter **MUST**
607 be defined as type: ``string``.
613 :validation_mode: static
616 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
617 property ``metadata`` key/value pair ``workload_context``
618 parameter ``workload_context`` **MUST NOT**
619 have parameter constraints defined.
625 :validation_mode: static
629 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
630 property ``metadata`` key/value pair ``workload_context``
631 parameter ``workload_context`` **MUST NOT**
632 be enumerated in the Heat Orchestration Template's environment file.
634 The 'workload\_context' parameter value will be chosen by the Service Model
635 Distribution context client in VID and will be supplied to the
636 Heat Orchestration Template by ONAP at orchestration time.
638 *Example Parameter Definition*
645 description: Workload Context for this VNF instance
648 *Example OS::Nova::Server with metadata*
655 {vm-type}_server_{index}:
656 type: OS::Nova::Server
663 vnf_name: { get_param: vnf_name }
664 vnf_id: { get_param: vnf_id }
665 vf_module_name: { get_param: vf_module_name }
666 vf_module_id: { get_param: vf_module_id }
667 workload_context: {get_param: workload_context}
670 ^^^^^^^^^^^^^^^^^^^^^
678 A VNF's Heat Orchestration Template's OS::Nova::Server
679 Resource **SHOULD** contain the metadata map value parameter
680 'environment_context'.
686 :validation_mode: static
689 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
690 property ``metadata`` key/value pair ``environment_context``
691 parameter **MUST** be declared as ``environment_context`` and the
692 parameter type **MUST** be defined as type: ``string``.
698 :validation_mode: static
701 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
702 property ``metadata``key/value pair ``environment_context``
703 parameter ``environment_context`` **MUST NOT**
704 have parameter constraints defined.
710 :validation_mode: static
713 A VNF's Heat Orchestration Template's ``OS::Nova::Server`` resource
715 ``metadata`` key/value pair ``environment_context`` **MUST NOT**
716 be enumerated in the Heat Orchestration Template's environment file.
718 The 'environment_context' parameter value will be defined by the
719 service designer as part of the service model during the SDC
720 on-boarding process and will be supplied to the Heat Orchestration
721 Template by ONAP at orchestration time.
724 *Example Parameter Definition*
731 description: Environment Context for this VNF instance
734 *Example OS::Nova::Server with metadata*
741 {vm-type}_server_{index}:
742 type: OS::Nova::Server
749 vnf_name: { get_param: vnf_name }
750 vnf_id: { get_param: vnf_id }
751 vf_module_name: { get_param: vf_module_name }
752 vf_module_id: { get_param: vf_module_id }
753 workload_context: {get_param: workload_context}
754 environment_context: {get_param: environment_context }