blob: 86324a6703823c7e5b6ba62706aabdf5da66ea57 [file] [log] [blame]
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +01001heat_template_version: queens
2
3parameters:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +01004 image:
5 type: string
6 description: Name of image to use for servers
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +01007 public_net_id:
8 type: string
Oleh Hryhorovb58460e2020-02-05 15:53:48 +02009 default: ''
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010010 description: >
Oleh Hryhorovb58460e2020-02-05 15:53:48 +020011 ID of public network for which floating IP addresses will be allocated/
12 for baremetal case flat provision network for nodes
13 host_interface:
14 type: string
15 description: Interface which connects server with public network (world accessible network).
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010016 masters_size:
17 type: number
18 description: Number of masters instances to deploy
19 default: 2
20 worker_size:
21 type: number
22 description: Number of workers to deploy
23 default: 5
24 cmp_size:
25 type: number
26 description: Number of cmp workers to deploy
27 default: 0
28 gtw_size:
29 type: number
30 description: Number of gtw workers to deploy
31 default: 0
sgudzb94b4c62020-02-05 13:21:25 +020032 lma_size:
33 type: number
34 description: Number of gtw workers to deploy
35 default: 0
36 osd_size:
37 type: number
38 description: Number of gtw workers to deploy
39 default: 0
sgudz43eb82b2020-02-11 16:36:48 +020040 ntw_size:
41 type: number
42 description: Number of contrail nodes to deploy
43 default: 0
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010044 ucp_boot_timeout:
45 type: number
46 description: Boot timeout for UCP instance
47 default: 1200
48 cluster_public_key:
49 type: string
Oleh Hryhorov0019f592020-01-23 11:50:12 +020050 private_floating_network_cidr:
51 type: string
52 default: '10.11.12.0/24'
Oleh Hryhorovb58460e2020-02-05 15:53:48 +020053 private_floating_network_pool_start:
54 type: string
55 default: '10.11.12.100'
56 private_floating_network_pool_end:
57 type: string
58 default: '10.11.12.200'
59 private_floating_network_gateway:
60 type: string
Oleh Hryhorovd3a30242020-02-11 15:24:01 +020061 default: ''
Oleh Hryhorovb58460e2020-02-05 15:53:48 +020062 private_floating_interface:
63 description: Interface which carries floating network for child OpenStack.
64 type: string
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010065 worker_metadata:
66 type: json
sgudzb94b4c62020-02-05 13:21:25 +020067 default: {}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010068 cmp_metadata:
69 type: json
sgudzb94b4c62020-02-05 13:21:25 +020070 default: {}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010071 gtw_metadata:
72 type: json
sgudzb94b4c62020-02-05 13:21:25 +020073 default: {}
74 lma_metadata:
75 type: json
76 default: {}
77 osd_metadata:
78 type: json
79 default: {}
sgudz43eb82b2020-02-11 16:36:48 +020080 ntw_metadata:
81 type: json
82 default: {}
sgudzfe58e8a2020-02-11 13:31:40 +020083 ucp_flavor:
84 type: string
85 default: 'system.compact.openstack.control'
86 masters_flavor:
87 type: string
88 default: 'system.compact.openstack.control'
89 workers_flavor:
90 type: string
91 default: 'system.compact.openstack.control'
92 cmps_flavor:
93 type: string
94 default: 'system.compact.openstack.control'
95 gtws_flavor:
96 type: string
97 default: 'system.compact.openstack.control'
98 lmas_flavor:
99 type: string
100 default: 'system.compact.openstack.control'
101 osds_flavor:
102 type: string
103 default: 'system.compact.openstack.control'
sgudz43eb82b2020-02-11 16:36:48 +0200104 ntws_flavor:
105 type: string
106 default: 'system.compact.openstack.control'
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200107 functions_override:
108 type: string
Vasyl Saienko9b688992020-02-13 13:50:53 +0200109 default: ''
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200110 docker_ee_url:
111 type: string
112 default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux'
113 docker_ee_release:
114 type: string
115 default: 'stable-19.03'
Oleh Hryhorov367e3ff2020-02-13 10:35:52 +0200116 tunnel_interface:
117 type: string
118 default: ''
119 live_migration_interface:
120 type: string
121 default: ''
122 metallb_address_pools:
123 type: comma_delimited_list
124 default: ''
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100125
126resources:
127 key_pair:
128 type: OS::Nova::KeyPair
129 properties:
130 name: { get_param: "OS::stack_name" }
131 public_key: { get_param: cluster_public_key}
132 save_private_key: false
133
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200134 accessible_network:
135 type: MCP2::NetworkAcc
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100136 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200137 public_net_id: { get_param: public_net_id }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100138
139 private_floating_network:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200140 type: MCP2::NetworkPrvFl
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100141 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200142 private_floating_network_cidr: { get_param: private_floating_network_cidr }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100143
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100144 ucp:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200145 depends_on: accessible_network
146 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100147 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100148 metadata: {"role":"ucp"}
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200149 docker_ee_url: { get_param: docker_ee_url }
150 docker_ee_release: { get_param: docker_ee_release }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200151 node_type: "ucp"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200152 key_name: { get_param: "OS::stack_name" }
153 image: { get_param: image }
154 flavor: { get_param: ucp_flavor }
155 accessible_network: { get_attr: [accessible_network, public_network] }
156 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
157 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
158 private_floating_interface: { get_param: private_floating_interface }
159 private_floating_network_cidr: { get_param: private_floating_network_cidr }
160 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
161 public_net_id: { get_param: public_net_id }
162 host_interface: { get_param: host_interface }
163 functions_override: { get_param: functions_override }
164
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100165
166 masters:
167 type: OS::Heat::ResourceGroup
168 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200169 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100170 properties:
171 count: { get_param: masters_size }
172 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200173 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100174 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100175 metadata: {"role":"master"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200176 node_type: "master"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200177 key_name: { get_param: "OS::stack_name" }
178 image: { get_param: image }
179 flavor: { get_param: masters_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200180 docker_ee_url: { get_param: docker_ee_url }
181 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200182 accessible_network: { get_attr: [accessible_network, public_network] }
183 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
184 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
185 private_floating_interface: { get_param: private_floating_interface }
186 private_floating_network_cidr: { get_param: private_floating_network_cidr }
187 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
188 public_net_id: { get_param: public_net_id }
189 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200190 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200191 functions_override: { get_param: functions_override }
192
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100193
194 workers:
195 type: OS::Heat::ResourceGroup
196 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200197 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100198 properties:
199 count: { get_param: worker_size }
200 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200201 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100202 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200203 metadata: { get_param: worker_metadata}
204 node_type: "worker"
205 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100206 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200207 flavor: { get_param: workers_flavor }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100208 key_name: { get_param: "OS::stack_name" }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200209 docker_ee_url: { get_param: docker_ee_url }
210 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200211 accessible_network: { get_attr: [accessible_network, public_network] }
212 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
213 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
214 private_floating_interface: { get_param: private_floating_interface }
215 private_floating_network_cidr: { get_param: private_floating_network_cidr }
216 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100217 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200218 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200219 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200220 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200221
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100222 cmps:
223 type: OS::Heat::ResourceGroup
224 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200225 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100226 properties:
227 count: { get_param: cmp_size }
228 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200229 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100230 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200231 metadata: { get_param: cmp_metadata }
232 node_type: "worker"
233 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100234 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200235 flavor: { get_param: cmps_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200236 docker_ee_url: { get_param: docker_ee_url }
237 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200238 accessible_network: { get_attr: [accessible_network, public_network] }
239 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
240 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
241 private_floating_interface: { get_param: private_floating_interface }
242 private_floating_network_cidr: { get_param: private_floating_network_cidr }
243 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100244 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200245 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200246 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200247 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200248
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100249 gtws:
250 type: OS::Heat::ResourceGroup
251 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200252 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100253 properties:
254 count: { get_param: gtw_size }
255 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200256 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100257 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200258 metadata: { get_param: gtw_metadata }
259 node_type: "worker"
260 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100261 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200262 flavor: { get_param: gtws_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200263 docker_ee_url: { get_param: docker_ee_url }
264 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200265 accessible_network: { get_attr: [accessible_network, public_network] }
266 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
267 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
268 private_floating_interface: { get_param: private_floating_interface }
269 private_floating_network_cidr: { get_param: private_floating_network_cidr }
270 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100271 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200272 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200273 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200274 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100275
sgudzb94b4c62020-02-05 13:21:25 +0200276 lmas:
277 type: OS::Heat::ResourceGroup
278 depends_on:
279 - ucp
280 properties:
281 count: { get_param: lma_size }
282 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200283 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200284 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200285 metadata: { get_param: lma_metadata }
286 node_type: "worker"
287 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200288 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200289 flavor: { get_param: lmas_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200290 docker_ee_url: { get_param: docker_ee_url }
291 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200292 accessible_network: { get_attr: [accessible_network, public_network] }
293 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
294 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
295 private_floating_interface: { get_param: private_floating_interface }
296 private_floating_network_cidr: { get_param: private_floating_network_cidr }
297 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200298 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200299 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200300 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200301 functions_override: { get_param: functions_override }
sgudzb94b4c62020-02-05 13:21:25 +0200302
303 osds:
304 type: OS::Heat::ResourceGroup
305 depends_on:
306 - ucp
307 properties:
308 count: { get_param: osd_size }
309 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200310 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200311 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200312 metadata: { get_param: osd_metadata }
313 node_type: "worker"
314 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200315 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200316 flavor: { get_param: osds_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200317 docker_ee_url: { get_param: docker_ee_url }
318 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200319 accessible_network: { get_attr: [accessible_network, public_network] }
320 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
321 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
322 private_floating_interface: { get_param: private_floating_interface }
323 private_floating_network_cidr: { get_param: private_floating_network_cidr }
324 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200325 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200326 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200327 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200328 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100329
sgudz43eb82b2020-02-11 16:36:48 +0200330 ntws:
331 type: OS::Heat::ResourceGroup
332 depends_on:
333 - ucp
334 properties:
335 count: { get_param: ntw_size }
336 resource_def:
337 type: MCP2::SrvInstances
338 properties:
339 metadata: { get_param: ntw_metadata }
340 node_type: "worker"
341 key_name: { get_param: "OS::stack_name" }
342 image: { get_param: image }
343 flavor: { get_param: ntws_flavor }
344 docker_ee_url: { get_param: docker_ee_url }
345 docker_ee_release: { get_param: docker_ee_release }
346 accessible_network: { get_attr: [accessible_network, public_network] }
347 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
348 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
349 private_floating_interface: { get_param: private_floating_interface }
350 private_floating_network_cidr: { get_param: private_floating_network_cidr }
351 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
352 public_net_id: { get_param: public_net_id }
353 host_interface: { get_param: host_interface }
354 ucp_master_host: { get_attr: [ucp, server_private_ip] }
355 functions_override: { get_param: functions_override }
356
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100357outputs:
358 ucp_ips:
359 description: Private IP addresses of the deployed ucp instances
360 value: { get_attr: [ucp, server_public_ip] }
361 masters_ips:
362 description: Private IP addresses of the deployed masters instances
363 value: { get_attr: [masters, server_public_ip] }
364 workers_ips:
365 description: Private IP addresses of the deployed worker instances
366 value: { get_attr: [workers, server_public_ip] }
367 cmps_ips:
368 description: Private IP addresses of the deployed cmp instances
369 value: { get_attr: [cmps, server_public_ip] }
370 gtws_ips:
371 description: Private IP addresses of the deployed gtw instances
372 value: { get_attr: [gtws, server_public_ip] }
sgudzb94b4c62020-02-05 13:21:25 +0200373 lmas_ips:
374 description: Private IP addresses of the deployed lma instances
375 value: { get_attr: [lmas, server_public_ip] }
376 osds_ips:
377 description: Private IP addresses of the deployed osd instances
378 value: { get_attr: [osds, server_public_ip] }
sgudz43eb82b2020-02-11 16:36:48 +0200379 ntws_ips:
380 description: Private IP addresses of the deployed contrail instances
381 value: { get_attr: [ntws, server_public_ip] }
Oleh Hryhorov404e9572020-01-21 18:57:22 +0200382 worker_private_floating_ips:
383 description: IPs might be used as gateway
384 value: { get_attr: [workers, server_private_floating_ip] }
Oleh Hryhorov0019f592020-01-23 11:50:12 +0200385 private_floating_cidr:
386 value: { get_param: private_floating_network_cidr }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200387 private_floating_network_pool_start:
388 value: { get_param: private_floating_network_pool_start }
389 private_floating_network_pool_end:
390 value: { get_param: private_floating_network_pool_end }
391 private_floating_network_gateway:
392 value: { get_param: private_floating_network_gateway }
Oleh Hryhorov367e3ff2020-02-13 10:35:52 +0200393 tunnel_interface:
394 value: { get_param: tunnel_interface }
395 live_migration_interface:
396 value: { get_param: live_migration_interface }
397 metallb_address_pools:
398 value: { get_param: metallb_address_pools }