5.2.5.4. Resource: OS::Nova::Server - Parameters
The OS::Nova::Server resource manages the running virtual machine (VM) instance within an OpenStack cloud. (See https://docs.openstack.org/developer/heat/template_guide/openstack.html#OS::Nova::Server)
The following four properties of the OS::Nova::Server
resource must follow an
ONAP specified naming convention.
image
flavor
name
availability_zone
Requirement R-01455 defines how the {vm-type]
is defined.
Requirement: R-304011
|
A VNF’s Heat Orchestration Template’s
MUST contain the identical |
The table below provides a summary. The sections that follow provides the detailed requirements.
Resource |
Property |
Parameter Type |
Parameter Name |
Parameter Value Provided to Heat |
---|---|---|---|---|
OS::Nova::Server |
image |
string |
{vm-type}_image_name |
Environment File |
OS::Nova::Server |
flavor |
string |
{vm-type}_flavor_name |
Environment File |
OS::Nova::Server |
name |
string |
{vm-type}_name_{index} |
ONAP |
OS::Nova::Server |
name |
CDL |
{vm-type}_names |
ONAP |
OS::Nova::Server |
availability_zone |
string |
availability_zone_{index} |
ONAP |
5.2.5.4.1. Property: image
Requirement: R-901331
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-71152
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-58670
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-91125
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-57282
|
Each VNF’s Heat Orchestration Template’s |
Example Parameter Definition
parameters:
{vm-type}_image_name:
type: string
description: {vm-type} server image
5.2.5.4.2. Property: flavor
Requirement: R-481670
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-50436
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-45188
|
The VNF’s Heat Orchestration Template’s Resource ‘OS::Nova::Server’ property
|
Requirement: R-69431
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-40499
|
Each VNF’s Heat Orchestration Template’s |
Example Parameter Definition
parameters:
{vm-type}_flavor_name:
type: string
description: {vm-type} flavor
5.2.5.4.3. Property: Name
Requirement: R-663631
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-51430
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-54171
|
When the VNF’s Heat Orchestration Template’s Resource
where |
Requirement: R-87817
|
When the VNF’s Heat Orchestration Template’s Resource |
Requirement: R-22838
|
The VNF’s Heat Orchestration Template’s Resource |
If a VNF’s Heat Orchestration Template’s contains more than three
OS::Nova::Server resources of a given {vm-type}
, the comma_delimited_list
form of the parameter name (i.e., {vm-type}_names
) should be used to
minimize the number of unique parameters defined in the template.
Example: Parameter Definition
parameters:
{vm-type}_names:
type: comma_delimited_list
description: VM Names for {vm-type} VMs
{vm-type}_name_{index}:
type: string
description: VM Name for {vm-type} VM {index}
Example: comma_delimited_list
In this example, the {vm-type} has been defined as “lb” for load balancer.
parameters:
lb_names:
type: comma_delimited_list
description: VM Names for lb VMs
resources:
lb_server_0:
type: OS::Nova::Server
properties:
name: { get_param: [lb_names, 0] }
...
lb_server_1:
type: OS::Nova::Server
properties:
name: { get_param: [lb_names, 1] }
...
Example: fixed-index
In this example, the {vm-type} has been defined as “lb” for load balancer.
parameters:
lb_name_0:
type: string
description: VM Name for lb VM 0
lb_name_1:
type: string
description: VM Name for lb VM 1
resources:
lb_server_0:
type: OS::Nova::Server
properties:
name: { get_param: lb_name_0 }
...
lb_server_1:
type: OS::Nova::Server
properties:
name: { get_param: lb_name_1 }
...
5.2.5.4.3.1. Contrail Issue with Values for OS::Nova::Server Property Name
Requirement: R-44271
|
The VNF’s Heat Orchestration Template’s Resource However, if special characters must be used, the only special characters supported are: — " ! $ ‘ () = ~ ^ | @ ` { } [ ] > , . _ |
5.2.5.4.4. Property: availability_zone
Requirement: R-98450
|
A VNF’s Heat Orchestration Template’s base module or incremental module
resource
where |
Requirement: R-23311
|
The VNF’s Heat Orchestration Template’s base module or incremental module
resource |
The parameter must not be declared as type comma_delimited_list
, ONAP does
not support it.
Requirement: R-59568
|
The VNF’s Heat Orchestration Template’s Resource |
Requirement: R-256790
|
A VNF’s Heat Orchestration Template’s Resource |
Example Parameter Definition
parameters:
availability_zone_{index}:
type: string
description: availability zone {index} name
Requirement (R-90279) states that a VNF Heat Orchestration’s template’s parameter MUST be used in a resource with the exception of the parameters for the OS::Nova::Server resource property availability_zone.
Requirement: R-01359
|
A VNF’s Heat Orchestration Template that contains an |
5.2.5.4.5. Example
The example below depicts part of a Heat Orchestration Template that
uses the four OS::Nova::Server
properties discussed in this section.
In the Heat Orchestration Template below, four Virtual Machines
(OS::Nova::Server
) are created: two dns servers with {vm-type}
set to
dns
and two oam servers with {vm-type}
set to oam
.
Note that the parameter
associated with the property name is a comma_delimited_list
for dns
and
a string for oam
.
parameters:
dns_image_name:
type: string
description: dns server image
dns_flavor_name:
type: string
description: dns server flavor
dns_names:
type: comma_delimited_list
description: dns server names
oam_image_name:
type: string
description: oam server image
oam_flavor_name:
type: string
description: oam server flavor
oam_name_0:
type: string
description: oam server name 0
oam_name_1:
type: string
description: oam server name 1
availability_zone_0:
type: string
description: availability zone ID or Name
availability_zone_1:
type: string
description: availability zone ID or Name
resources:
dns_server_0:
type: OS::Nova::Server
properties:
name: { get_param: [ dns_names, 0 ] }
image: { get_param: dns_image_name }
flavor: { get_param: dns_flavor_name }
availability_zone: { get_param: availability_zone_0 }
. . .
dns_server_1:
type: OS::Nova::Server
properties:
name: { get_param: [ dns_names, 1 ] }
image: { get_param: dns_image_name }
flavor: { get_param: dns_flavor_name }
availability_zone: { get_param: availability_zone_1 }
. . .
oam_server_0:
type: OS::Nova::Server
properties:
name: { get_param: oam_name_0 }
image: { get_param: oam_image_name }
flavor: { get_param: oam_flavor_name }
availability_zone: { get_param: availability_zone_0 }
. . .
oam_server_1:
type: OS::Nova::Server
properties:
name: { get_param: oam_name_1 }
image: { get_param: oam_image_name }
flavor: { get_param: oam_flavor_name }
availability_zone: { get_param: availability_zone_1 }
. . .
5.2.5.4.6. Boot Options
Requirement: R-99798
|
A VNF’s Heat Orchestration Template’s Virtual Machine
(i.e., |
Requirement: R-83706
|
When a VNF’s Heat Orchestration Template’s Virtual Machine
(i.e., |
The requirements associated with the ‘image’ property are detailed in Property: image
Requirement: R-69588
|
When a VNF’s Heat Orchestration Template’s Virtual Machine
(i.e., |
There are currently no heat guidelines associated with these two properties: ‘block_device_mapping’ and ‘block_device_mapping_v2’.