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 }
80 flavor: { get_param: flavor }
81 key_name: { get_param: key_name }
83 - port: { get_resource: rubbos_control_port }
86 type: OS::Neutron::Port
88 network_id: { get_resource: private_net }
90 - subnet_id: { get_resource: private_subnet }
91 security_groups: [{ get_resource: server_security_group }]
93 rubbos_control_floating_ip:
94 type: OS::Neutron::FloatingIP
96 floating_network: { get_param: public_net }
97 port_id: { get_resource: rubbos_control_port }
100 type: OS::Nova::Server
103 image: { get_param: image }
104 flavor: { get_param: flavor }
105 key_name: { get_param: key_name }
107 - port: { get_resource: rubbos_httpd_port }
110 type: OS::Neutron::Port
112 network_id: { get_resource: private_net }
114 - subnet_id: { get_resource: private_subnet }
115 security_groups: [{ get_resource: server_security_group }]
118 type: OS::Nova::Server
121 image: { get_param: image }
122 flavor: { get_param: flavor }
123 key_name: { get_param: key_name }
125 - port: { get_resource: rubbos_mysql1_port }
128 type: OS::Neutron::Port
130 network_id: { get_resource: private_net }
132 - subnet_id: { get_resource: private_subnet }
133 security_groups: [{ get_resource: server_security_group }]
136 type: OS::Nova::Server
139 image: { get_param: image }
140 flavor: { get_param: flavor }
141 key_name: { get_param: key_name }
143 - port: { get_resource: rubbos_tomcat1_port }
146 type: OS::Neutron::Port
148 network_id: { get_resource: private_net }
150 - subnet_id: { get_resource: private_subnet }
151 security_groups: [{ get_resource: server_security_group }]
154 type: OS::Nova::Server
157 image: { get_param: image }
158 flavor: { get_param: flavor }
159 key_name: { get_param: key_name }
161 - port: { get_resource: rubbos_client1_port }
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_client2_port }
182 type: OS::Neutron::Port
184 network_id: { get_resource: private_net }
186 - subnet_id: { get_resource: private_subnet }
187 security_groups: [{ get_resource: server_security_group }]
190 type: OS::Nova::Server
193 image: { get_param: image }
194 flavor: { get_param: flavor }
195 key_name: { get_param: key_name }
197 - port: { get_resource: rubbos_client3_port }
200 type: OS::Neutron::Port
202 network_id: { get_resource: private_net }
204 - subnet_id: { get_resource: private_subnet }
205 security_groups: [{ get_resource: server_security_group }]
208 type: OS::Nova::Server
211 image: { get_param: image }
212 flavor: { get_param: flavor }
213 key_name: { get_param: key_name }
215 - port: { get_resource: rubbos_client4_port }
218 type: OS::Neutron::Port
220 network_id: { get_resource: private_net }
222 - subnet_id: { get_resource: private_subnet }
223 security_groups: [{ get_resource: server_security_group }]
226 type: OS::Nova::Server
228 name: rubbos_benchmark
229 image: { get_param: image }
230 flavor: { get_param: flavor }
231 key_name: { get_param: key_name }
233 - port: { get_resource: rubbos_benchmark_port }
235 rubbos_benchmark_port:
236 type: OS::Neutron::Port
238 network_id: { get_resource: private_net }
240 - subnet_id: { get_resource: private_subnet }
241 security_groups: [{ get_resource: server_security_group }]
243 server_security_group:
244 type: OS::Neutron::SecurityGroup
246 description: Rubbos group for servers access.
247 name: rubbos-security-group
249 {remote_ip_prefix: 0.0.0.0/0,
252 port_range_max: 65535},
253 {remote_ip_prefix: 0.0.0.0/0,
256 port_range_max: 65535},
257 {remote_ip_prefix: 0.0.0.0/0,
261 rubbos_control_private_ip:
262 description: IP address of rubbos_control in private network
263 value: { get_attr: [ rubbos_control, first_address ] }
264 rubbos_control_public_ip:
265 description: Floating IP address of rubbos_control in public network
266 value: { get_attr: [ rubbos_control_floating_ip, floating_ip_address ] }
267 rubbos_httpd_private_ip:
268 description: IP address of rubbos_httpd in private network
269 value: { get_attr: [ rubbos_httpd, first_address ] }
270 rubbos_mysql1_private_ip:
271 description: IP address of rubbos_mysql1 in private network
272 value: { get_attr: [ rubbos_mysql1, first_address ] }
273 rubbos_tomcat1_private_ip:
274 description: IP address of rubbos_tomcat1 in private network
275 value: { get_attr: [ rubbos_tomcat1, first_address ] }
276 rubbos_client1_private_ip:
277 description: IP address of rubbos_client1 in private network
278 value: { get_attr: [ rubbos_client1, first_address ] }
279 rubbos_client2_private_ip:
280 description: IP address of rubbos_client2 in private network
281 value: { get_attr: [ rubbos_client2, first_address ] }
282 rubbos_client3_private_ip:
283 description: IP address of rubbos_client3 in private network
284 value: { get_attr: [ rubbos_client3, first_address ] }
285 rubbos_client4_private_ip:
286 description: IP address of rubbos_client4 in private network
287 value: { get_attr: [ rubbos_client4, first_address ] }
288 rubbos_benchmark_private_ip:
289 description: IP address of rubbos_benchmark in private network
290 value: { get_attr: [ rubbos_benchmark, first_address ] }