heat_template_version: 2013-05-23 parameters: key_name: type: string flavor: type: string default: m1.medium image: type: string default: cirros public_net_id: type: string default: public description: > ID of public network for which floating IP addresses will be allocated private_net_name: type: string default: private description: Name of private network to be created private_net_cidr: type: string default: 10.0.0.0/24 description: Private network address (CIDR notation) private_net_gateway: type: string default: 10.0.0.1 description: Private network gateway address private_net_pool_start: type: string default: 10.0.0.10 description: Start of private network IP address allocation pool private_net_pool_end: type: string default: 10.0.0.254 description: End of private network IP address allocation pool resources: private_net: type: OS::Neutron::Net properties: name: { get_param: private_net_name } private_subnet: type: OS::Neutron::Subnet properties: network_id: { get_resource: private_net } cidr: { get_param: private_net_cidr } gateway_ip: { get_param: private_net_gateway } allocation_pools: - start: { get_param: private_net_pool_start } end: { get_param: private_net_pool_end } dns_nameservers: - 8.8.8.8 router: type: OS::Neutron::Router properties: external_gateway_info: network: { get_param: public_net_id } router_interface: type: OS::Neutron::RouterInterface properties: router_id: { get_resource: router } subnet_id: { get_resource: private_subnet } server1_server: type: OS::Nova::Server properties: image: {get_param: image} flavor: {get_param: flavor} key_name: {get_param: key_name} user_data_format: SOFTWARE_CONFIG networks: - port: { get_resource: server1_port } server1_port: type: OS::Neutron::Port properties: network_id: { get_resource: private_net } fixed_ips: - subnet_id: { get_resource: private_subnet } server1_floating_ip: type: OS::Neutron::FloatingIP properties: floating_network_id: { get_param: public_net_id } port_id: { get_resource: server1_port } server2_server: type: OS::Nova::Server properties: image: {get_param: image} flavor: {get_param: flavor} key_name: {get_param: key_name} user_data_format: SOFTWARE_CONFIG networks: - port: { get_resource: server2_port } server2_port: type: OS::Neutron::Port properties: network_id: { get_resource: private_net } fixed_ips: - subnet_id: { get_resource: private_subnet } server2_floating_ip: type: OS::Neutron::FloatingIP properties: floating_network_id: { get_param: public_net_id } port_id: { get_resource: server2_port } outputs: result: value: foobar