| heat_template_version: 2013-05-23 |
| description: | |
| Template which uses a wait condition to confirm that a minimal |
| signalling works in a created network |
| parameters: |
| key_name: |
| type: string |
| flavor: |
| type: string |
| image: |
| type: string |
| subnet_cidr: |
| type: string |
| default: 10.100.0.0/16 |
| timeout: |
| type: number |
| public_net: |
| type: string |
| default: public |
| private_net: |
| type: string |
| default: heat-net |
| dns_servers: |
| type: comma_delimited_list |
| default: ["8.8.8.8", "8.8.4.4"] |
| user_data_format: |
| type: string |
| default: RAW |
| resources: |
| sg: |
| type: OS::Neutron::SecurityGroup |
| properties: |
| name: the_sg |
| description: Ping and SSH |
| rules: |
| - protocol: icmp |
| - protocol: tcp |
| port_range_min: 22 |
| port_range_max: 22 |
| |
| floating_ip: |
| type: OS::Neutron::FloatingIP |
| properties: |
| floating_network: {get_param: public_net} |
| |
| network: |
| type: OS::Neutron::Net |
| |
| subnet: |
| type: OS::Neutron::Subnet |
| properties: |
| network: {get_resource: network} |
| ip_version: 4 |
| cidr: {get_param: subnet_cidr} |
| dns_nameservers: {get_param: dns_servers} |
| |
| router: |
| type: OS::Neutron::Router |
| properties: |
| external_gateway_info: |
| network: {get_param: public_net} |
| |
| router_interface: |
| type: OS::Neutron::RouterInterface |
| properties: |
| router: {get_resource: router} |
| subnet: {get_resource: subnet} |
| |
| wait_handle: |
| type: OS::Heat::WaitConditionHandle |
| |
| server: |
| type: OS::Nova::Server |
| properties: |
| image: {get_param: image} |
| flavor: {get_param: flavor} |
| key_name: {get_param: key_name} |
| networks: |
| - subnet: {get_resource: subnet} |
| security_groups: |
| - {get_resource: sg} |
| user_data_format: {get_param: user_data_format} |
| user_data: |
| str_replace: |
| template: | |
| #!/bin/sh |
| wc_notify --data-binary '{"status": "SUCCESS", "data": "test complete"}' |
| params: |
| wc_notify: { get_attr: ['wait_handle', 'curl_cli'] } |
| |
| server_floating_ip_assoc: |
| type: OS::Neutron::FloatingIPAssociation |
| properties: |
| floatingip_id: {get_resource: floating_ip} |
| port_id: {get_attr: [server, addresses, {get_resource: network}, 0, port]} |
| |
| wait_condition: |
| type: OS::Heat::WaitCondition |
| properties: |
| handle: {get_resource: wait_handle} |
| timeout: {get_param: timeout} |
| |
| outputs: |
| server_ip: |
| value: {get_attr: [floating_ip, floating_ip_address]} |
| wc_data: |
| value: {get_attr: [wait_condition, data]} |