5.2.5.5. Resource: OS::Nova::Server Metadata Parameters
The OS::Nova::Server resource property metadata is an optional
OpenStack property.
Table 2 summarizes the mandatory and optional metadata supported by ONAP.
The sections that follow provides the requirements associated with each
metadata parameter.
Resource |
Property |
Parameter Name |
Parameter Type |
Required |
Parameter Value Provided to Heat |
|---|---|---|---|---|---|
OS::Nova::Server |
metadata |
vnf_id |
string |
MUST |
ONAP |
OS::Nova::Server |
metadata |
vf_module_id |
string |
MUST |
ONAP |
OS::Nova::Server |
metadata |
vnf_name |
string |
MUST |
ONAP |
OS::Nova::Server |
metadata |
vf_module_name |
string |
SHOULD |
ONAP |
OS::Nova::Server |
metadata |
vm_role |
string |
MAY |
YAML or Environment File |
OS::Nova::Server |
metadata |
vf_module_index |
number |
MAY |
ONAP |
OS::Nova::Server |
metadata |
workload_context |
string |
MUST |
ONAP |
OS::Nova::Server |
metadata |
environment_context |
string |
MUST |
ONAP |
5.2.5.5.1. vnf_id
The OS::Nova::Server resource property metadata key/value pair
vnf_id is an ONAP generated UUID that identifies the VNF. The value
is provided by ONAP to the VNF’s Heat Orchestration
Template at orchestration time.
Requirement: R-37437
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-07507
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-55218
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-20856
|
A VNF’s Heat Orchestration Template’s |
Example ‘vnf_id’ Parameter Definition
parameters:
vnf_id:
type: string
description: Unique ID for this VNF instance
5.2.5.5.2. vf_module_id
The OS::Nova::Server Resource metadata map value parameter vf_module_id
is an ONAP generated UUID that identifies the VF Module (e.g., Heat
Orchestration Template). The value
is provided by ONAP to the VNF’s Heat Orchestration
Template at orchestration time.
Requirement: R-71493
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-82134
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-98374
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-72871
|
A VNF’s Heat Orchestration Template’s |
Example ‘vf_module_id’ Parameter Definition
parameters:
vnf_module_id:
type: string
description: Unique ID for this VNF module instance
5.2.5.5.3. vnf_name
The OS::Nova::Server Resource metadata map value parameter vnf_name
is the ONAP (SDN-C) generated alphanumeric name of the deployed VNF instance.
The value
is provided by ONAP to the VNF’s Heat Orchestration
Template at orchestration time.
Requirement: R-72483
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-62428
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-44318
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-36542
|
A VNF’s Heat Orchestration Template’s |
Example ‘vnf_name’ Parameter Definition
parameters:
vnf_name:
type: string
description: Unique name for this VNF instance
5.2.5.5.4. vf_module_name
The OS::Nova::Server Resource metadata map value parameter
vf_module_name
is the deployment name of the heat stack created (e.g., <STACK_NAME>)
from the
VNF’s Heat Orchestration template
in the command Heat stack-create
(e.g., Heat stack-create [-f <FILE>] [-e <FILE>] <STACK_NAME>).
The vf_module_name (e.g., <STACK_NAME> is specified as
part of the orchestration process.
Requirement: R-100400
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-68023
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-39067
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-15480
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-80374
|
A VNF’s Heat Orchestration Template’s |
Example ‘vf_module_name’ Parameter Definition
parameters:
vf_module_name:
type: string
description: Unique name for this VNF Module instance
5.2.5.5.5. vm_role
The OS::Nova::Server Resource metadata map value parameter vm_role
is a metadata tag that describes the role of the Virtual Machine.
Requirement: R-85328
|
A VNF’s Heat Orchestration Template’s
|
Requirement: R-95430
|
If a VNF’s Heat Orchestration Template’s
|
Requirement: R-67597
|
A VNF’s Heat Orchestration Template’s |
Defining the vm_role as the {vm-type} is a recommended convention
Requirement: R-86476
|
A VNF’s Heat Orchestration Template’s |
Example ‘vm_role’ Parameter Definition
parameters:
vm_role:
type: string
description: Unique role for this VM
Example: ‘vm_role’ Definition: Hard Coded in OS::Nova::Resource metadata property
resources:
dns_server_0
type: OS::Nova::Server
properties:
. . . .
metadata:
vm_role: dns
Example ‘vm_role’ Definition: Defined in Environment file and retrieved via ‘get_param’
resources:
dns_server_0:
type: OS::Nova::Server
properties:
. . . .
metadata:
vm_role: { get_param: vm_role }
5.2.5.5.6. Example vnf_id, vf_module_id, vnf_name, vf_module_name, vm_role
The example below depicts part of a Heat Orchestration Template that
uses the five of the OS::Nova::Server resource
metadata map value parameters discussed in this
section. The {vm-type} has been defined as lb for load balancer.
parameters:
lb_name_0
type: string
description: VM Name for lb VM 0
vnf_name:
type: string
description: Unique name for this VNF instance
vnf_id:
type: string
description: Unique ID for this VNF instance
vf_module_name:
type: string
description: Unique name for this VNF Module instance
vf_module_id:
type: string
description: Unique ID for this VNF Module instance
vm_role:
type: string
description: Unique role for this VM
resources:
lb_server_0:
type: OS::Nova::Server
properties:
name: { get_param: lb_name_0 }
...
metadata:
vnf_name: { get_param: vnf_name }
vnf_id: { get_param: vnf_id }
vf_module_name: { get_param: vf_module_name }
vf_module_id: { get_param: vf_module_id }
vm_role: lb
5.2.5.5.7. vf_module_index
Requirement: R-100410
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-50816
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-54340
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-09811
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-37039
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-55306
|
A VNF’s Heat Orchestration Template’s |
The vf_module_index parameter indicates which instance of the module is
being deployed into the VNF.
This parameter may be used in cases where multiple instances of the same
incremental module are being instantiated for scaling purposes. The index
can be used in the Heat Orchestration Template for indexing into a
comma_delimited_list defined parameter to provide a unique value
for each module instance.
The parameter list may be defined in the VNF’s Heat Orchestration
Template’s environmental file or be provided by SDN-C.
ONAP does not support the vf_module_index to be utilized as an index by all
parameters defined as comma_delimited_list.
The vf_module_index must not be used for indexing the following
resource property parameters:
OS::Nova::Serverpropertynameparameter (defined as acomma_delimited_list).OS::Neutron::Portpropertyfixed_ipsmap propertyip_addressparameter (defined as acomma_delimited_list) when the port is attaching to an ONAP external network (per the ONAP definition, see Requirement R-57424 and R-16968)
The vf_module_index may be used for indexing OS::Neutron::Port property
fixed_ips map property ip_address parameter (defined as a
comma_delimited_list) when the port is attaching to an
ONAP internal network (per the ONAP definition, see Requirements R-52425 and
R-46461 and R-35666). An example is provided below.
Requirement: R-55307
|
A VNF’s Heat Orchestration Template’s parameter
|
The vf_module_index will start at 0 for the first instance of a module
type. Subsequent instances of the same module type will receive the
lowest unused index. This means that indexes will be reused if a module
is deleted and re-added. As an example, if three copies of a module are
deployed with vf_module_index values of 0, 1, and 2 then subsequently
the second one is deleted (index 1), and then re-added, index 1 will be
reused.
Example
In this example, the {vm-type} has been defined as oam_vm to represent
an OAM VM. An incremental heat module is used to deploy the OAM VM. The
OAM VM attaches to an ONAP internal network which has a
{network-role} of ctrl. A maximum of four OAM VMs can be deployed. The
environment file contains the four IP addresses that each successive OAM
VM will be assigned. The vf_module_index is used as the index to
determine the IP assignment.
Environment File
parameters:
oam_vm_int_ctrl_ips: 10.10.10.1,10.10.10.2,10.10.10.3,10.10.10.4
YAML File
parameters:
vf_module_index:
type: number
description: Unique index for this VNF Module instance
oam_vm_name_0:
type: string
description: VM Name for lb VM 0
int_ctrl_net_id:
type: string
description: Neutron UUID for the internal control network
oam_vm_int_ctrl_ips:
type: comma_delimited_list
description: Fixed IP assignments for oam VMs on the internal control
network
resources:
oam_vm_server_0:
type: OS::Nova::Server
properties:
name: { get_param: oam_vm_name_0 }
networks:
- port: { get_resource: oam_vm_0_int_ctrl_port_0 }
# . . .
metadata:
vf_module_index: { get_param: vf_module_index }
oam_vm_0_int_ctrl_port_0:
type: OS::Neutron::Port
properties:
network: { get_param: int_ctrl_net_id }
fixed_ips: [ { "ip_address": {get_param: [ oam_vm_int_ctrl_ips, { get_param: vf_module_index} ]}}]
5.2.5.5.8. workload_context
Requirement: R-47061
|
A VNF’s Heat Orchestration Template’s OS::Nova::Server Resource SHOULD contain the metadata map value parameter ‘workload_context’. |
Requirement: R-74978
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-34055
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-02691
|
A VNF’s Heat Orchestration Template’s |
The ‘workload_context’ parameter value will be chosen by the Service Model Distribution context client in VID and will be supplied to the Heat Orchestration Template by ONAP at orchestration time.
Example Parameter Definition
parameters:
workload_context:
type: string
description: Workload Context for this VNF instance
Example OS::Nova::Server with metadata
resources:
. . .
{vm-type}_server_{index}:
type: OS::Nova::Server
properties:
name:
flavor:
image:
...
metadata:
vnf_name: { get_param: vnf_name }
vnf_id: { get_param: vnf_id }
vf_module_name: { get_param: vf_module_name }
vf_module_id: { get_param: vf_module_id }
workload_context: {get_param: workload_context}
5.2.5.5.9. environment_context
Requirement: R-88536
|
A VNF’s Heat Orchestration Template’s OS::Nova::Server Resource SHOULD contain the metadata map value parameter ‘environment_context’. |
Requirement: R-20308
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-56183
|
A VNF’s Heat Orchestration Template’s |
Requirement: R-13194
|
A VNF’s Heat Orchestration Template’s |
The ‘environment_context’ parameter value will be defined by the service designer as part of the service model during the SDC on-boarding process and will be supplied to the Heat Orchestration Template by ONAP at orchestration time.
Example Parameter Definition
parameters:
environment_context:
type: string
description: Environment Context for this VNF instance
Example OS::Nova::Server with metadata
resources:
. . .
{vm-type}_server_{index}:
type: OS::Nova::Server
properties:
name:
flavor:
image:
...
metadata:
vnf_name: { get_param: vnf_name }
vnf_id: { get_param: vnf_id }
vf_module_name: { get_param: vf_module_name }
vf_module_id: { get_param: vf_module_id }
workload_context: {get_param: workload_context}
environment_context: {get_param: environment_context }