heat_template_version: 2013-05-23 description: Simple template to deploy a single compute instance parameters: vnf_id: description: Unique ID for this VNF type: string vf_module_id: description: Unique ID for this VF module type: string vnf_name: type: string description: Unique name for this VNF instance ex_image_name: type: string label: Image name or ID description: Image to be used for compute instance ex_flavor_name: type: string label: Flavor description: Type of instance (flavor) to be used ex_key: type: string label: key pair description: Name of the key apir the nova server will use ex_vm_name: type: string description: Name of the VM ex1_vm_names: type: comma_delimited_list description: Name of the VM ex1_image_name: type: string label: Image name or ID description: Image to be used for compute instance ex1_flavor_name: type: string label: Flavor description: Type of instance (flavor) to be used ex1_key: type: string label: key pair description: Name of the key apir the nova server will use int_network_net_id: type: string label: Network name description: Name of the network the nova server will connect to ex1_server_index: type: number label: server index description: Index of server constraint: - range: { min: 1, max: 100 } availability_zone_0: type: string description: availabilityzone name availability_zone_1: type: string description: availabilityzone name availability_zone_2: type: string description: availabilityzone name resources: ex_software_config_0: type: OS::Heat::SoftwareConfig properties: group: ungrouped config: params: $stack_name: { get_param: 'OS::stack_name' } ex_nova_serverGroup: type: OS::Nova::ServerGroup properties: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } vnf_name: { get_param: vnf_name } availability_zones: { list_join: [',', [ { get_param: availability_zone_0 }, { get_param: availability_zone_2 } ] ] } ex_nova_server_0: type: OS::Nova::Server properties: name: { get_param: ex_vm_name } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } vnf_name: { get_param: vnf_name } image: { get_param: ex_image_name } flavor: { get_param: ex_flavor_name } key_name: { get_param: ex_key } networks: - network: { get_param: int_network_net_id } user_data: get_resource: ex_software_config_0 ex1_nova_server_0: type: OS::Nova::Server properties: name: { get_param: [ ex1_vm_names, 0 ] } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } vnf_name: { get_param: vnf_name } image: { get_param: ex1_image_name} flavor: { get_param: ex1_flavor_name } key_name: { get_param: ex1_key } ex1_nova_server_1: type: OS::Nova::Server properties: name: { get_param: [ ex1_vm_names, { get_param: ex1_server_index } ] } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } vnf_name: { get_param: vnf_name } image: { get_param: ex1_image_name} flavor: { get_param: ex1_flavor_name } key_name: { get_param: ex1_key }