16be8bae35
We set the mime-type to 'x-shellscript' for all single userdata when user_data_format='SOFTWARE_CONFIG', it's incorrect, for example, if user create a server with a cloud-config userdata, we will set the mime-type to 'x-shellscript', then cloud-init will consume the userdata as a shellscript and fail to execute. This change will improve this by not setting the mime-type and letting cloud-init figure it out from the first line in the file. Closes-Bug: #1643739 Change-Id: If026884a95c58bb81a0f04ab415909011b1a5414
108 lines
2.5 KiB
YAML
108 lines
2.5 KiB
YAML
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]}
|