1 heat_template_version: 2013-05-23
4 HOT template to create a new neutron network plus a router to the public
5 network, and for deploying nine servers into the new network. The template also
6 assigns floating IP addresses to rubbos_control server so it is routable from the
11 description: Name of keypair to assign to servers
12 default: bottlenecks-key
15 description: Name of image to use for servers
16 default: bottlenecks-trusty-server
19 description: Flavor to use for servers
20 default: bottlenecks-flavor
24 ID or name of public network for which floating IP addresses will be allocated
28 description: Name of private network to be created
29 default: bottlenecks-private
32 description: Private network address (CIDR notation)
33 default: "10.0.10.0/24"
36 description: Private network gateway address
38 private_net_pool_start:
40 description: Start of private network IP address allocation pool
44 description: End of private network IP address allocation pool
45 default: "10.0.10.199"
49 type: OS::Neutron::Net
51 name: { get_param: private_net_name }
54 type: OS::Neutron::Subnet
56 network_id: { get_resource: private_net }
57 cidr: { get_param: private_net_cidr }
58 gateway_ip: { get_param: private_net_gateway }
60 - start: { get_param: private_net_pool_start }
61 end: { get_param: private_net_pool_end }
64 type: OS::Neutron::Router
66 external_gateway_info:
67 network: { get_param: public_net }
70 type: OS::Neutron::RouterInterface
72 router_id: { get_resource: router }
73 subnet_id: { get_resource: private_subnet }
76 type: OS::Nova::Server
79 image: { get_param: image }
81 key_name: { get_param: key_name }
83 - port: { get_resource: rubbos_control_port }
87 type: OS::Neutron::Port
89 network_id: { get_resource: private_net }
91 - subnet_id: { get_resource: private_subnet }
92 security_groups: [{ get_resource: server_security_group }]
94 rubbos_control_floating_ip:
95 type: OS::Neutron::FloatingIP
97 floating_network: { get_param: public_net }
98 port_id: { get_resource: rubbos_control_port }
101 type: OS::Nova::Server
104 image: { get_param: image }
105 flavor: { get_param: flavor }
106 key_name: { get_param: key_name }
108 - port: { get_resource: rubbos_httpd_port }
112 type: OS::Neutron::Port
114 network_id: { get_resource: private_net }
116 - subnet_id: { get_resource: private_subnet }
117 security_groups: [{ get_resource: server_security_group }]
120 type: OS::Nova::Server
123 image: { get_param: image }
124 flavor: { get_param: flavor }
125 key_name: { get_param: key_name }
127 - port: { get_resource: rubbos_mysql1_port }
131 type: OS::Neutron::Port
133 network_id: { get_resource: private_net }
135 - subnet_id: { get_resource: private_subnet }
136 security_groups: [{ get_resource: server_security_group }]
139 type: OS::Nova::Server
142 image: { get_param: image }
143 flavor: { get_param: flavor }
144 key_name: { get_param: key_name }
146 - port: { get_resource: rubbos_tomcat1_port }
150 type: OS::Neutron::Port
152 network_id: { get_resource: private_net }
154 - subnet_id: { get_resource: private_subnet }
155 security_groups: [{ get_resource: server_security_group }]
158 type: OS::Nova::Server
161 image: { get_param: image }
162 flavor: { get_param: flavor }
163 key_name: { get_param: key_name }
165 - port: { get_resource: rubbos_client1_port }
169 type: OS::Neutron::Port
171 network_id: { get_resource: private_net }
173 - subnet_id: { get_resource: private_subnet }
174 security_groups: [{ get_resource: server_security_group }]
177 type: OS::Nova::Server
181 flavor: { get_param: flavor }
182 key_name: { get_param: key_name }
184 - port: { get_resource: rubbos_client2_port }
188 type: OS::Neutron::Port
190 network_id: { get_resource: private_net }
192 - subnet_id: { get_resource: private_subnet }
193 security_groups: [{ get_resource: server_security_group }]
196 type: OS::Nova::Server
199 image: { get_param: image }
200 flavor: { get_param: flavor }
201 key_name: { get_param: key_name }
203 - port: { get_resource: rubbos_client3_port }
207 type: OS::Neutron::Port
209 network_id: { get_resource: private_net }
211 - subnet_id: { get_resource: private_subnet }
212 security_groups: [{ get_resource: server_security_group }]
215 type: OS::Nova::Server
218 image: { get_param: image }
219 flavor: { get_param: flavor }
220 key_name: { get_param: key_name }
222 - port: { get_resource: rubbos_client4_port }
226 type: OS::Neutron::Port
228 network_id: { get_resource: private_net }
230 - subnet_id: { get_resource: private_subnet }
231 security_groups: [{ get_resource: server_security_group }]
234 type: OS::Nova::Server
237 image: { get_param: image }
238 flavor: { get_param: flavor }
239 key_name: { get_param: key_name }
241 - port: { get_resource: rubbos_client4_port }
245 type: OS::Nova::Server
247 name: rubbos_benchmark
248 image: { get_param: image }
249 flavor: { get_param: flavor }
250 key_name: { get_param: key_name }
252 - port: { get_resource: rubbos_benchmark_port }
255 rubbos_benchmark_port:
256 type: OS::Neutron::Port
258 network_id: { get_resource: private_net }
260 - subnet_id: { get_resource: private_subnet }
261 security_groups: [{ get_resource: server_security_group }]
263 server_security_group:
264 type: OS::Neutron::SecurityGroup
266 description: Rubbos group for servers access.
267 name: rubbos-security-group
269 {remote_ip_prefix: 0.0.0.0/0,
272 port_range_max: 65535},
273 {remote_ip_prefix: 0.0.0.0/0,
276 port_range_max: 65535},
277 {remote_ip_prefix: 0.0.0.0/0,
281 rubbos_control_private_ip:
282 description: IP address of rubbos_control in private network
283 value: { get_attr: [ rubbos_control, first_address ] }
284 rubbos_control_public_ip:
285 description: Floating IP address of rubbos_control in public network
286 value: { get_attr: [ rubbos_control_floating_ip, floating_ip_address ] }
287 rubbos_httpd_private_ip:
288 description: IP address of rubbos_httpd in private network
289 value: { get_attr: [ rubbos_httpd, first_address ] }
290 rubbos_mysql1_private_ip:
291 description: IP address of rubbos_mysql1 in private network
292 value: { get_attr: [ rubbos_mysql1, first_address ] }
293 rubbos_tomcat1_private_ip:
294 description: IP address of rubbos_tomcat1 in private network
295 value: { get_attr: [ rubbos_tomcat1, first_address ] }
296 rubbos_client1_private_ip:
297 description: IP address of rubbos_client1 in private network
298 value: { get_attr: [ rubbos_client1, first_address ] }
299 rubbos_client2_private_ip:
300 description: IP address of rubbos_client2 in private network
301 value: { get_attr: [ rubbos_client2, first_address ] }
302 rubbos_client3_private_ip:
303 description: IP address of rubbos_client3 in private network
304 value: { get_attr: [ rubbos_client3, first_address ] }
305 rubbos_client4_private_ip:
306 description: IP address of rubbos_client4 in private network
307 value: { get_attr: [ rubbos_client4, first_address ] }
308 rubbos_benchmark_private_ip:
309 description: IP address of rubbos_benchmark in private network
310 value: { get_attr: [ rubbos_benchmark, first_address ] }