1 heat_template_version: 2013-05-23
4 HOT template to create a stack with minimum number of resources for rubbos.
8 description: Name of keypair to assign to servers
9 default: bottlenecks_rubbos_keypair
12 description: Name of image to use for servers
13 default: bottlenecks-trusty-server
16 description: Flavor to use for servers
17 default: bottlenecks_rubbos_flavor
21 ID or name of public network for which floating IP addresses will be allocated
25 description: Name of private network to be created
26 default: bottlenecks-private
29 description: Private network address (CIDR notation)
30 default: "10.0.10.0/24"
33 description: Private network gateway address
35 private_net_pool_start:
37 description: Start of private network IP address allocation pool
41 description: End of private network IP address allocation pool
42 default: "10.0.10.199"
45 description: User data for the server with master role
49 description: User data for the server with agent role
54 type: OS::Neutron::Net
56 name: { get_param: private_net_name }
59 type: OS::Neutron::Subnet
61 network_id: { get_resource: private_net }
62 cidr: { get_param: private_net_cidr }
63 gateway_ip: { get_param: private_net_gateway }
65 - start: { get_param: private_net_pool_start }
66 end: { get_param: private_net_pool_end }
67 dns_nameservers: [ "8.8.8.8" ]
70 type: OS::Neutron::Router
72 external_gateway_info:
73 network: { get_param: public_net }
76 type: OS::Neutron::RouterInterface
78 router_id: { get_resource: router }
79 subnet_id: { get_resource: private_subnet }
82 type: OS::Nova::Server
85 image: { get_param: image }
86 flavor: { get_param: flavor }
87 key_name: { get_param: key_name }
89 - port: { get_resource: rubbos_control_port }
91 user_data: { get_param: master_user_data }
95 type: OS::Neutron::Port
97 network_id: { get_resource: private_net }
99 - subnet_id: { get_resource: private_subnet }
100 security_groups: [{ get_resource: server_security_group }]
102 rubbos_control_floating_ip:
103 type: OS::Neutron::FloatingIP
105 floating_network: { get_param: public_net }
106 port_id: { get_resource: rubbos_control_port }
109 type: OS::Nova::Server
112 image: { get_param: image }
113 flavor: { get_param: flavor }
114 key_name: { get_param: key_name }
116 - port: { get_resource: rubbos_httpd_port }
118 user_data: { get_param: agent_user_data }
119 user_data_format: RAW
122 type: OS::Neutron::Port
124 network_id: { get_resource: private_net }
126 - subnet_id: { get_resource: private_subnet }
127 security_groups: [{ get_resource: server_security_group }]
130 type: OS::Nova::Server
133 image: { get_param: image }
134 flavor: { get_param: flavor }
135 key_name: { get_param: key_name }
137 - port: { get_resource: rubbos_mysql1_port }
139 user_data: { get_param: agent_user_data }
140 user_data_format: RAW
143 type: OS::Neutron::Port
145 network_id: { get_resource: private_net }
147 - subnet_id: { get_resource: private_subnet }
148 security_groups: [{ get_resource: server_security_group }]
151 type: OS::Nova::Server
154 image: { get_param: image }
155 flavor: { get_param: flavor }
156 key_name: { get_param: key_name }
158 - port: { get_resource: rubbos_tomcat1_port }
160 user_data: { get_param: agent_user_data }
161 user_data_format: RAW
164 type: OS::Neutron::Port
166 network_id: { get_resource: private_net }
168 - subnet_id: { get_resource: private_subnet }
169 security_groups: [{ get_resource: server_security_group }]
172 type: OS::Nova::Server
175 image: { get_param: image }
176 flavor: { get_param: flavor }
177 key_name: { get_param: key_name }
179 - port: { get_resource: rubbos_client1_port }
181 user_data: { get_param: agent_user_data }
182 user_data_format: RAW
185 type: OS::Neutron::Port
187 network_id: { get_resource: private_net }
189 - subnet_id: { get_resource: private_subnet }
190 security_groups: [{ get_resource: server_security_group }]
192 server_security_group:
193 type: OS::Neutron::SecurityGroup
195 description: Rubbos group for servers access.
196 name: rubbos-security-group
198 {remote_ip_prefix: 0.0.0.0/0,
201 port_range_max: 65535},
202 {remote_ip_prefix: 0.0.0.0/0,
205 port_range_max: 65535},
206 {remote_ip_prefix: 0.0.0.0/0,
210 rubbos_control_private_ip:
211 description: IP address of rubbos_control in private network
212 value: { get_attr: [ rubbos_control, first_address ] }
213 rubbos_control_public_ip:
214 description: Floating IP address of rubbos_control in public network
215 value: { get_attr: [ rubbos_control_floating_ip, floating_ip_address ] }
216 rubbos_httpd_private_ip:
217 description: IP address of rubbos_httpd in private network
218 value: { get_attr: [ rubbos_httpd, first_address ] }
219 rubbos_mysql1_private_ip:
220 description: IP address of rubbos_mysql1 in private network
221 value: { get_attr: [ rubbos_mysql1, first_address ] }
222 rubbos_tomcat1_private_ip:
223 description: IP address of rubbos_tomcat1 in private network
224 value: { get_attr: [ rubbos_tomcat1, first_address ] }
225 rubbos_client1_private_ip:
226 description: IP address of rubbos_client1 in private network
227 value: { get_attr: [ rubbos_client1, first_address ] }