blob: 0001cc231054bc4687653bbd316a17e371c9a32d [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
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010040 ucp_boot_timeout:
41 type: number
42 description: Boot timeout for UCP instance
43 default: 1200
44 cluster_public_key:
45 type: string
Oleh Hryhorov0019f592020-01-23 11:50:12 +020046 private_floating_network_cidr:
47 type: string
48 default: '10.11.12.0/24'
Oleh Hryhorovb58460e2020-02-05 15:53:48 +020049 private_floating_network_pool_start:
50 type: string
51 default: '10.11.12.100'
52 private_floating_network_pool_end:
53 type: string
54 default: '10.11.12.200'
55 private_floating_network_gateway:
56 type: string
Oleh Hryhorovd3a30242020-02-11 15:24:01 +020057 default: ''
Oleh Hryhorovb58460e2020-02-05 15:53:48 +020058 private_floating_interface:
59 description: Interface which carries floating network for child OpenStack.
60 type: string
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010061 worker_metadata:
62 type: json
sgudzb94b4c62020-02-05 13:21:25 +020063 default: {}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010064 cmp_metadata:
65 type: json
sgudzb94b4c62020-02-05 13:21:25 +020066 default: {}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010067 gtw_metadata:
68 type: json
sgudzb94b4c62020-02-05 13:21:25 +020069 default: {}
70 lma_metadata:
71 type: json
72 default: {}
73 osd_metadata:
74 type: json
75 default: {}
sgudzfe58e8a2020-02-11 13:31:40 +020076 ucp_flavor:
77 type: string
78 default: 'system.compact.openstack.control'
79 masters_flavor:
80 type: string
81 default: 'system.compact.openstack.control'
82 workers_flavor:
83 type: string
84 default: 'system.compact.openstack.control'
85 cmps_flavor:
86 type: string
87 default: 'system.compact.openstack.control'
88 gtws_flavor:
89 type: string
90 default: 'system.compact.openstack.control'
91 lmas_flavor:
92 type: string
93 default: 'system.compact.openstack.control'
94 osds_flavor:
95 type: string
96 default: 'system.compact.openstack.control'
Oleh Hryhorovb58460e2020-02-05 15:53:48 +020097 functions_override:
98 type: string
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +020099 docker_ee_url:
100 type: string
101 default: 'https://s3-us-west-2.amazonaws.com/internal-docker-ee-builds/docker-ee-linux'
102 docker_ee_release:
103 type: string
104 default: 'stable-19.03'
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100105
106resources:
107 key_pair:
108 type: OS::Nova::KeyPair
109 properties:
110 name: { get_param: "OS::stack_name" }
111 public_key: { get_param: cluster_public_key}
112 save_private_key: false
113
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200114 accessible_network:
115 type: MCP2::NetworkAcc
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100116 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200117 public_net_id: { get_param: public_net_id }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100118
119 private_floating_network:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200120 type: MCP2::NetworkPrvFl
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100121 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200122 private_floating_network_cidr: { get_param: private_floating_network_cidr }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100123
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100124 ucp:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200125 depends_on: accessible_network
126 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100127 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100128 metadata: {"role":"ucp"}
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200129 docker_ee_url: { get_param: docker_ee_url }
130 docker_ee_release: { get_param: docker_ee_release }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200131 node_type: "ucp"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200132 key_name: { get_param: "OS::stack_name" }
133 image: { get_param: image }
134 flavor: { get_param: ucp_flavor }
135 accessible_network: { get_attr: [accessible_network, public_network] }
136 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
137 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
138 private_floating_interface: { get_param: private_floating_interface }
139 private_floating_network_cidr: { get_param: private_floating_network_cidr }
140 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
141 public_net_id: { get_param: public_net_id }
142 host_interface: { get_param: host_interface }
143 functions_override: { get_param: functions_override }
144
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100145
146 masters:
147 type: OS::Heat::ResourceGroup
148 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200149 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100150 properties:
151 count: { get_param: masters_size }
152 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200153 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100154 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100155 metadata: {"role":"master"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200156 node_type: "master"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200157 key_name: { get_param: "OS::stack_name" }
158 image: { get_param: image }
159 flavor: { get_param: masters_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200160 docker_ee_url: { get_param: docker_ee_url }
161 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200162 accessible_network: { get_attr: [accessible_network, public_network] }
163 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
164 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
165 private_floating_interface: { get_param: private_floating_interface }
166 private_floating_network_cidr: { get_param: private_floating_network_cidr }
167 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
168 public_net_id: { get_param: public_net_id }
169 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200170 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200171 functions_override: { get_param: functions_override }
172
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100173
174 workers:
175 type: OS::Heat::ResourceGroup
176 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200177 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100178 properties:
179 count: { get_param: worker_size }
180 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200181 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100182 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200183 metadata: { get_param: worker_metadata}
184 node_type: "worker"
185 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100186 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200187 flavor: { get_param: workers_flavor }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100188 key_name: { get_param: "OS::stack_name" }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200189 docker_ee_url: { get_param: docker_ee_url }
190 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200191 accessible_network: { get_attr: [accessible_network, public_network] }
192 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
193 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
194 private_floating_interface: { get_param: private_floating_interface }
195 private_floating_network_cidr: { get_param: private_floating_network_cidr }
196 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100197 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200198 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200199 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200200 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200201
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100202 cmps:
203 type: OS::Heat::ResourceGroup
204 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200205 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100206 properties:
207 count: { get_param: cmp_size }
208 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200209 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100210 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200211 metadata: { get_param: cmp_metadata }
212 node_type: "worker"
213 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100214 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200215 flavor: { get_param: cmps_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200216 docker_ee_url: { get_param: docker_ee_url }
217 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200218 accessible_network: { get_attr: [accessible_network, public_network] }
219 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
220 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
221 private_floating_interface: { get_param: private_floating_interface }
222 private_floating_network_cidr: { get_param: private_floating_network_cidr }
223 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100224 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200225 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200226 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200227 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200228
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100229 gtws:
230 type: OS::Heat::ResourceGroup
231 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200232 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100233 properties:
234 count: { get_param: gtw_size }
235 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200236 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100237 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200238 metadata: { get_param: gtw_metadata }
239 node_type: "worker"
240 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100241 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200242 flavor: { get_param: gtws_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200243 docker_ee_url: { get_param: docker_ee_url }
244 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200245 accessible_network: { get_attr: [accessible_network, public_network] }
246 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
247 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
248 private_floating_interface: { get_param: private_floating_interface }
249 private_floating_network_cidr: { get_param: private_floating_network_cidr }
250 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100251 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200252 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200253 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200254 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100255
sgudzb94b4c62020-02-05 13:21:25 +0200256 lmas:
257 type: OS::Heat::ResourceGroup
258 depends_on:
259 - ucp
260 properties:
261 count: { get_param: lma_size }
262 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200263 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200264 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200265 metadata: { get_param: lma_metadata }
266 node_type: "worker"
267 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200268 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200269 flavor: { get_param: lmas_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200270 docker_ee_url: { get_param: docker_ee_url }
271 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200272 accessible_network: { get_attr: [accessible_network, public_network] }
273 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
274 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
275 private_floating_interface: { get_param: private_floating_interface }
276 private_floating_network_cidr: { get_param: private_floating_network_cidr }
277 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200278 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200279 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200280 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200281 functions_override: { get_param: functions_override }
sgudzb94b4c62020-02-05 13:21:25 +0200282
283 osds:
284 type: OS::Heat::ResourceGroup
285 depends_on:
286 - ucp
287 properties:
288 count: { get_param: osd_size }
289 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200290 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200291 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200292 metadata: { get_param: osd_metadata }
293 node_type: "worker"
294 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200295 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200296 flavor: { get_param: osds_flavor }
Mykyta Karpin5ed5fd82020-01-27 18:23:29 +0200297 docker_ee_url: { get_param: docker_ee_url }
298 docker_ee_release: { get_param: docker_ee_release }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200299 accessible_network: { get_attr: [accessible_network, public_network] }
300 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
301 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
302 private_floating_interface: { get_param: private_floating_interface }
303 private_floating_network_cidr: { get_param: private_floating_network_cidr }
304 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200305 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200306 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200307 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200308 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100309
310outputs:
311 ucp_ips:
312 description: Private IP addresses of the deployed ucp instances
313 value: { get_attr: [ucp, server_public_ip] }
314 masters_ips:
315 description: Private IP addresses of the deployed masters instances
316 value: { get_attr: [masters, server_public_ip] }
317 workers_ips:
318 description: Private IP addresses of the deployed worker instances
319 value: { get_attr: [workers, server_public_ip] }
320 cmps_ips:
321 description: Private IP addresses of the deployed cmp instances
322 value: { get_attr: [cmps, server_public_ip] }
323 gtws_ips:
324 description: Private IP addresses of the deployed gtw instances
325 value: { get_attr: [gtws, server_public_ip] }
sgudzb94b4c62020-02-05 13:21:25 +0200326 lmas_ips:
327 description: Private IP addresses of the deployed lma instances
328 value: { get_attr: [lmas, server_public_ip] }
329 osds_ips:
330 description: Private IP addresses of the deployed osd instances
331 value: { get_attr: [osds, server_public_ip] }
Oleh Hryhorov404e9572020-01-21 18:57:22 +0200332 worker_private_floating_ips:
333 description: IPs might be used as gateway
334 value: { get_attr: [workers, server_private_floating_ip] }
Oleh Hryhorov0019f592020-01-23 11:50:12 +0200335 private_floating_cidr:
336 value: { get_param: private_floating_network_cidr }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200337 private_floating_network_pool_start:
338 value: { get_param: private_floating_network_pool_start }
339 private_floating_network_pool_end:
340 value: { get_param: private_floating_network_pool_end }
341 private_floating_network_gateway:
342 value: { get_param: private_floating_network_gateway }
343