heat_template_version: 2016-10-14 parameters: public_net: type: string default: public image: type: string default: Cirros 0.3.5 64-bit flavor: type: string default: m1.tiny ssh_key: type: string default: heat-vm-key cidr: type: string default: 10.11.11.0/24 resources: server: type: OS::Nova::Server properties: image: {get_param: image} flavor: {get_param: flavor} key_name: {get_param: ssh_key} networks: - port: { get_resource: server_port } user_data_format: RAW router: type: OS::Neutron::Router properties: external_gateway_info: network: {get_param: public_net} router_interface: type: OS::Neutron::RouterInterface properties: router_id: { get_resource: router } subnet_id: { get_resource: private_subnet } private_net: type: OS::Neutron::Net private_subnet: type: OS::Neutron::Subnet properties: network: { get_resource: private_net } cidr: {get_param: cidr} dns_nameservers: - 8.8.8.8 - 8.8.4.4 port_security_group: type: OS::Neutron::SecurityGroup properties: name: default_port_security_group description: > Default security group assigned to port. rules: [ {remote_ip_prefix: 0.0.0.0/0, protocol: tcp, port_range_min: 22, port_range_max: 22}, {remote_ip_prefix: 0.0.0.0/0, protocol: icmp}] server_port: type: OS::Neutron::Port properties: network: {get_resource: private_net} fixed_ips: - subnet: { get_resource: private_subnet } security_groups: - { get_resource: port_security_group } server_floating_ip: type: OS::Neutron::FloatingIP properties: floating_network: {get_param: public_net} port_id: { get_resource: server_port } outputs: floating_ip: value: {get_attr: [server_floating_ip, floating_ip_address]}