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 }
92 rubbos_control_floating_ip:
93 type: OS::Neutron::FloatingIP
95 floating_network: { get_param: public_net }
96 port_id: { get_resource: rubbos_control_port }
99 type: OS::Nova::Server
102 image: { get_param: image }
103 flavor: { get_param: flavor }
104 key_name: { get_param: key_name }
106 - port: { get_resource: rubbos_httpd_port }
109 type: OS::Neutron::Port
111 network_id: { get_resource: private_net }
113 - subnet_id: { get_resource: private_subnet }
116 type: OS::Nova::Server
119 image: { get_param: image }
120 flavor: { get_param: flavor }
121 key_name: { get_param: key_name }
123 - port: { get_resource: rubbos_mysql1_port }
126 type: OS::Neutron::Port
128 network_id: { get_resource: private_net }
130 - subnet_id: { get_resource: private_subnet }
133 type: OS::Nova::Server
136 image: { get_param: image }
137 flavor: { get_param: flavor }
138 key_name: { get_param: key_name }
140 - port: { get_resource: rubbos_tomcat1_port }
143 type: OS::Neutron::Port
145 network_id: { get_resource: private_net }
147 - subnet_id: { get_resource: private_subnet }
150 type: OS::Nova::Server
153 image: { get_param: image }
154 flavor: { get_param: flavor }
155 key_name: { get_param: key_name }
157 - port: { get_resource: rubbos_client1_port }
160 type: OS::Neutron::Port
162 network_id: { get_resource: private_net }
164 - subnet_id: { get_resource: private_subnet }
167 type: OS::Nova::Server
170 image: { get_param: image }
171 flavor: { get_param: flavor }
172 key_name: { get_param: key_name }
174 - port: { get_resource: rubbos_client2_port }
177 type: OS::Neutron::Port
179 network_id: { get_resource: private_net }
181 - subnet_id: { get_resource: private_subnet }
184 type: OS::Nova::Server
187 image: { get_param: image }
188 flavor: { get_param: flavor }
189 key_name: { get_param: key_name }
191 - port: { get_resource: rubbos_client3_port }
194 type: OS::Neutron::Port
196 network_id: { get_resource: private_net }
198 - subnet_id: { get_resource: private_subnet }
201 type: OS::Nova::Server
204 image: { get_param: image }
205 flavor: { get_param: flavor }
206 key_name: { get_param: key_name }
208 - port: { get_resource: rubbos_client4_port }
211 type: OS::Neutron::Port
213 network_id: { get_resource: private_net }
215 - subnet_id: { get_resource: private_subnet }
218 type: OS::Nova::Server
220 name: rubbos_benchmark
221 image: { get_param: image }
222 flavor: { get_param: flavor }
223 key_name: { get_param: key_name }
225 - port: { get_resource: rubbos_benchmark_port }
227 rubbos_benchmark_port:
228 type: OS::Neutron::Port
230 network_id: { get_resource: private_net }
232 - subnet_id: { get_resource: private_subnet }
235 rubbos_control_private_ip:
236 description: IP address of rubbos_control in private network
237 value: { get_attr: [ rubbos_control, first_address ] }
238 rubbos_control_public_ip:
239 description: Floating IP address of rubbos_control in public network
240 value: { get_attr: [ rubbos_control_floating_ip, floating_ip_address ] }
241 rubbos_httpd_private_ip:
242 description: IP address of rubbos_httpd in private network
243 value: { get_attr: [ rubbos_httpd, first_address ] }
244 rubbos_mysql1_private_ip:
245 description: IP address of rubbos_mysql1 in private network
246 value: { get_attr: [ rubbos_mysql1, first_address ] }
247 rubbos_tomcat1_private_ip:
248 description: IP address of rubbos_tomcat1 in private network
249 value: { get_attr: [ rubbos_tomcat1, first_address ] }
250 rubbos_client1_private_ip:
251 description: IP address of rubbos_client1 in private network
252 value: { get_attr: [ rubbos_client1, first_address ] }
253 rubbos_client2_private_ip:
254 description: IP address of rubbos_client2 in private network
255 value: { get_attr: [ rubbos_client2, first_address ] }
256 rubbos_client3_private_ip:
257 description: IP address of rubbos_client3 in private network
258 value: { get_attr: [ rubbos_client3, first_address ] }
259 rubbos_client4_private_ip:
260 description: IP address of rubbos_client4 in private network
261 value: { get_attr: [ rubbos_client4, first_address ] }
262 rubbos_benchmark_private_ip:
263 description: IP address of rubbos_benchmark in private network
264 value: { get_attr: [ rubbos_benchmark, first_address ] }