heat_template_version: 2013-05-23 parameters: stack_name: type: string description: Name of the HEAT stack availability_zone_0: type: string description: Availability zone where this component should be instantiated iom_image_name: type: string description: Image to be used for the instance iom_flavor_name: type: string description: Flavor of the VNF to be used mgt_net_id: type: string description: Network used by the Management interface mgt_subnet_id: type: string description: Subnet used by the Management interface ctrl_fabric_net_id: type: string description: Network used by the Control Fabric interface ctrl_fabric_subnet_id: type: string description: Subnet used by the Control Fabric interface data0_net_id: type: string description: Network used by the Data interface data0_subnet_id: type: string description: Subnet used by the Data interface data1_net_id: type: string description: Network used by the second Data interface data1_subnet_id: type: string description: Subnet used by the second Data interface data2_net_id: type: string description: Network used by the third Data interface data2_subnet_id: type: string description: Subnet used by the third Data interface data3_net_id: type: string description: Network used by the fourth Data interface data3_subnet_id: type: string description: Subnet used by the fourth Data interface security_group: type: string description: Security group to be used iom_smbios: type: string description: Parameters to be passed to the VM at boot up as key-value pairs iom_slot: type: string description: The slot value assigned to the module eg 1, 2, 3, etc iom_mtu: type: string description: MTU size in bytes vnf_id: type: string description: VNF ID vm_name: type: string description: Name of the VM vf_module_id: type: string description: VNF Module ID resources: iom_mgt_0_port: type: OS::Neutron::Port properties: network_id: { get_param: mgt_net_id } security_groups: [ { get_param: security_group} ] fixed_ips: [ { subnet_id: { get_param: mgt_subnet_id } } ] iom_ctrl_fabric_0_port: type: OS::Neutron::Port properties: network_id: { get_param: ctrl_fabric_net_id } security_groups: [ { get_param: security_group} ] fixed_ips: [ { subnet_id: { get_param: ctrl_fabric_subnet_id } } ] value_specs: extra_dhcp_opts: - {opt_name: interface-mtu, opt_value: { get_param: iom_mtu } } iom_data_0_port: type: OS::Neutron::Port properties: network_id: { get_param: data0_net_id } security_groups: [ { get_param: security_group} ] binding:vnic_type: "direct" value_specs: extra_dhcp_opts: - {opt_name: interface-mtu, opt_value: { get_param: iom_mtu } } iom_data_1_port: type: OS::Neutron::Port properties: network_id: { get_param: data1_net_id } security_groups: [ { get_param: security_group} ] binding:vnic_type: "direct" value_specs: extra_dhcp_opts: - {opt_name: interface-mtu, opt_value: { get_param: iom_mtu } } iom_data_2_port: type: OS::Neutron::Port properties: network_id: { get_param: data2_net_id } security_groups: [ { get_param: security_group} ] binding:vnic_type: "direct" value_specs: extra_dhcp_opts: - {opt_name: interface-mtu, opt_value: { get_param: iom_mtu } } iom_data_3_port: type: OS::Neutron::Port properties: network_id: { get_param: data3_net_id } security_groups: [ { get_param: security_group} ] binding:vnic_type: "direct" value_specs: extra_dhcp_opts: - {opt_name: interface-mtu, opt_value: { get_param: iom_mtu } } IOM: type: OS::Nova::Server depends_on: [ iom_mgt_0_port, iom_ctrl_fabric_0_port, iom_data_0_port, iom_data_1_port, iom_data_2_port, iom_data_3_port ] properties: name: { get_param: vm_name } metadata: vnf_id: { get_param: vnf_id } vf_module_id: { get_param: vf_module_id } image: { get_param: iom_image_name } flavor: { get_param: iom_flavor_name } availability_zone: { get_param: availability_zone_0 } config_drive: "true" user_data: { get_param: iom_smbios } user_data_format: { get_param: 'OS::stack_id' } networks: - port: { get_resource: iom_mgt_0_port } - port: { get_resource: iom_ctrl_fabric_0_port } - port: { get_resource: iom_data_0_port } - port: { get_resource: iom_data_1_port } - port: { get_resource: iom_data_2_port } - port: { get_resource: iom_data_3_port }