blob: 53459160c7ee81d5d2638beb19b36a44fbae138a [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
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200109 docker_ee_url:
110 type: string
111 default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux'
112 docker_ee_release:
113 type: string
114 default: 'stable-19.03'
Oleh Hryhorov367e3ff2020-02-13 10:35:52 +0200115 tunnel_interface:
116 type: string
117 default: ''
118 live_migration_interface:
119 type: string
120 default: ''
121 metallb_address_pools:
122 type: comma_delimited_list
123 default: ''
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100124
125resources:
126 key_pair:
127 type: OS::Nova::KeyPair
128 properties:
129 name: { get_param: "OS::stack_name" }
130 public_key: { get_param: cluster_public_key}
131 save_private_key: false
132
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200133 accessible_network:
134 type: MCP2::NetworkAcc
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100135 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200136 public_net_id: { get_param: public_net_id }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100137
138 private_floating_network:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200139 type: MCP2::NetworkPrvFl
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100140 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200141 private_floating_network_cidr: { get_param: private_floating_network_cidr }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100142
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100143 ucp:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200144 depends_on: accessible_network
145 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100146 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100147 metadata: {"role":"ucp"}
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200148 docker_ee_url: { get_param: docker_ee_url }
149 docker_ee_release: { get_param: docker_ee_release }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200150 node_type: "ucp"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200151 key_name: { get_param: "OS::stack_name" }
152 image: { get_param: image }
153 flavor: { get_param: ucp_flavor }
154 accessible_network: { get_attr: [accessible_network, public_network] }
155 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
156 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
157 private_floating_interface: { get_param: private_floating_interface }
158 private_floating_network_cidr: { get_param: private_floating_network_cidr }
159 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
160 public_net_id: { get_param: public_net_id }
161 host_interface: { get_param: host_interface }
162 functions_override: { get_param: functions_override }
163
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100164
165 masters:
166 type: OS::Heat::ResourceGroup
167 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200168 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100169 properties:
170 count: { get_param: masters_size }
171 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200172 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100173 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100174 metadata: {"role":"master"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200175 node_type: "master"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200176 key_name: { get_param: "OS::stack_name" }
177 image: { get_param: image }
178 flavor: { get_param: masters_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200179 docker_ee_url: { get_param: docker_ee_url }
180 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200181 accessible_network: { get_attr: [accessible_network, public_network] }
182 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
183 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
184 private_floating_interface: { get_param: private_floating_interface }
185 private_floating_network_cidr: { get_param: private_floating_network_cidr }
186 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
187 public_net_id: { get_param: public_net_id }
188 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200189 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200190 functions_override: { get_param: functions_override }
191
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100192
193 workers:
194 type: OS::Heat::ResourceGroup
195 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200196 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100197 properties:
198 count: { get_param: worker_size }
199 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200200 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100201 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200202 metadata: { get_param: worker_metadata}
203 node_type: "worker"
204 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100205 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200206 flavor: { get_param: workers_flavor }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100207 key_name: { get_param: "OS::stack_name" }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200208 docker_ee_url: { get_param: docker_ee_url }
209 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200210 accessible_network: { get_attr: [accessible_network, public_network] }
211 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
212 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
213 private_floating_interface: { get_param: private_floating_interface }
214 private_floating_network_cidr: { get_param: private_floating_network_cidr }
215 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100216 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200217 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200218 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200219 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200220
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100221 cmps:
222 type: OS::Heat::ResourceGroup
223 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200224 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100225 properties:
226 count: { get_param: cmp_size }
227 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200228 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100229 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200230 metadata: { get_param: cmp_metadata }
231 node_type: "worker"
232 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100233 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200234 flavor: { get_param: cmps_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200235 docker_ee_url: { get_param: docker_ee_url }
236 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200237 accessible_network: { get_attr: [accessible_network, public_network] }
238 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
239 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
240 private_floating_interface: { get_param: private_floating_interface }
241 private_floating_network_cidr: { get_param: private_floating_network_cidr }
242 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100243 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200244 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200245 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200246 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200247
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100248 gtws:
249 type: OS::Heat::ResourceGroup
250 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200251 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100252 properties:
253 count: { get_param: gtw_size }
254 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200255 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100256 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200257 metadata: { get_param: gtw_metadata }
258 node_type: "worker"
259 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100260 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200261 flavor: { get_param: gtws_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200262 docker_ee_url: { get_param: docker_ee_url }
263 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200264 accessible_network: { get_attr: [accessible_network, public_network] }
265 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
266 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
267 private_floating_interface: { get_param: private_floating_interface }
268 private_floating_network_cidr: { get_param: private_floating_network_cidr }
269 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100270 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200271 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200272 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200273 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100274
sgudzb94b4c62020-02-05 13:21:25 +0200275 lmas:
276 type: OS::Heat::ResourceGroup
277 depends_on:
278 - ucp
279 properties:
280 count: { get_param: lma_size }
281 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200282 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200283 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200284 metadata: { get_param: lma_metadata }
285 node_type: "worker"
286 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200287 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200288 flavor: { get_param: lmas_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200289 docker_ee_url: { get_param: docker_ee_url }
290 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200291 accessible_network: { get_attr: [accessible_network, public_network] }
292 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
293 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
294 private_floating_interface: { get_param: private_floating_interface }
295 private_floating_network_cidr: { get_param: private_floating_network_cidr }
296 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200297 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200298 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200299 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200300 functions_override: { get_param: functions_override }
sgudzb94b4c62020-02-05 13:21:25 +0200301
302 osds:
303 type: OS::Heat::ResourceGroup
304 depends_on:
305 - ucp
306 properties:
307 count: { get_param: osd_size }
308 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200309 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200310 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200311 metadata: { get_param: osd_metadata }
312 node_type: "worker"
313 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200314 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200315 flavor: { get_param: osds_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200316 docker_ee_url: { get_param: docker_ee_url }
317 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200318 accessible_network: { get_attr: [accessible_network, public_network] }
319 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
320 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
321 private_floating_interface: { get_param: private_floating_interface }
322 private_floating_network_cidr: { get_param: private_floating_network_cidr }
323 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200324 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200325 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200326 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200327 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100328
sgudz43eb82b2020-02-11 16:36:48 +0200329 ntws:
330 type: OS::Heat::ResourceGroup
331 depends_on:
332 - ucp
333 properties:
334 count: { get_param: ntw_size }
335 resource_def:
336 type: MCP2::SrvInstances
337 properties:
338 metadata: { get_param: ntw_metadata }
339 node_type: "worker"
340 key_name: { get_param: "OS::stack_name" }
341 image: { get_param: image }
342 flavor: { get_param: ntws_flavor }
343 docker_ee_url: { get_param: docker_ee_url }
344 docker_ee_release: { get_param: docker_ee_release }
345 accessible_network: { get_attr: [accessible_network, public_network] }
346 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
347 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
348 private_floating_interface: { get_param: private_floating_interface }
349 private_floating_network_cidr: { get_param: private_floating_network_cidr }
350 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
351 public_net_id: { get_param: public_net_id }
352 host_interface: { get_param: host_interface }
353 ucp_master_host: { get_attr: [ucp, server_private_ip] }
354 functions_override: { get_param: functions_override }
355
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100356outputs:
357 ucp_ips:
358 description: Private IP addresses of the deployed ucp instances
359 value: { get_attr: [ucp, server_public_ip] }
360 masters_ips:
361 description: Private IP addresses of the deployed masters instances
362 value: { get_attr: [masters, server_public_ip] }
363 workers_ips:
364 description: Private IP addresses of the deployed worker instances
365 value: { get_attr: [workers, server_public_ip] }
366 cmps_ips:
367 description: Private IP addresses of the deployed cmp instances
368 value: { get_attr: [cmps, server_public_ip] }
369 gtws_ips:
370 description: Private IP addresses of the deployed gtw instances
371 value: { get_attr: [gtws, server_public_ip] }
sgudzb94b4c62020-02-05 13:21:25 +0200372 lmas_ips:
373 description: Private IP addresses of the deployed lma instances
374 value: { get_attr: [lmas, server_public_ip] }
375 osds_ips:
376 description: Private IP addresses of the deployed osd instances
377 value: { get_attr: [osds, server_public_ip] }
sgudz43eb82b2020-02-11 16:36:48 +0200378 ntws_ips:
379 description: Private IP addresses of the deployed contrail instances
380 value: { get_attr: [ntws, server_public_ip] }
Oleh Hryhorov404e9572020-01-21 18:57:22 +0200381 worker_private_floating_ips:
382 description: IPs might be used as gateway
383 value: { get_attr: [workers, server_private_floating_ip] }
Oleh Hryhorov0019f592020-01-23 11:50:12 +0200384 private_floating_cidr:
385 value: { get_param: private_floating_network_cidr }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200386 private_floating_network_pool_start:
387 value: { get_param: private_floating_network_pool_start }
388 private_floating_network_pool_end:
389 value: { get_param: private_floating_network_pool_end }
390 private_floating_network_gateway:
391 value: { get_param: private_floating_network_gateway }
Oleh Hryhorov367e3ff2020-02-13 10:35:52 +0200392 tunnel_interface:
393 value: { get_param: tunnel_interface }
394 live_migration_interface:
395 value: { get_param: live_migration_interface }
396 metallb_address_pools:
397 value: { get_param: metallb_address_pools }