Example)
create_floatingip_instance.yaml
heat_template_version: 2015-10-15
description: Simple template to deploy a single compute instance
parameters:
image:
type: string
label: Image name or ID
description: Image to be used for compute instance
default: cirros
flavor:
type: string
label: Flavor
description: Type of instance (flavor) to be used
default: m1.small
private_network:
type: string
label: Private network name or ID
description: Network to attach instance to.
default: demo_private
private_subnet:
type: string
default: 29801943-a259-4580-a5d6-b8d387991b6a
description: Id of the private sub network for the compute server
public_network:
type: string
label: Public network name or ID
default: public
description: Id of the public network for the compute server
resources:
my_instance:
type: OS::Nova::Server
properties:
name: Heat_VM
image: { get_param: image }
flavor: { get_param: flavor }
networks:
- port: { get_resource: my_instance_port }
my_instance_port:
type: OS::Neutron::Port
properties:
network_id: { get_param: private_network }
fixed_ips:
- subnet_id: { get_param: private_subnet }
floating_ip:
type: OS::Neutron::FloatingIP
properties:
floating_network: { get_param: public_network }
port_id: { get_resource: my_instance_port }
outputs:
instance_private_ip:
description: IP address of the instance
value: { get_attr: [my_instance, first_address] }
instance_public_ip:
description: IP address of the instance
value: { get_attr: [floating_ip, floating_ip_address] }