blob: e72fa2d82c55d980929dc9899aee668825bbe593 [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
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010099
100resources:
101 key_pair:
102 type: OS::Nova::KeyPair
103 properties:
104 name: { get_param: "OS::stack_name" }
105 public_key: { get_param: cluster_public_key}
106 save_private_key: false
107
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200108 accessible_network:
109 type: MCP2::NetworkAcc
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100110 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200111 public_net_id: { get_param: public_net_id }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100112
113 private_floating_network:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200114 type: MCP2::NetworkPrvFl
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100115 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200116 private_floating_network_cidr: { get_param: private_floating_network_cidr }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100117
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100118 ucp:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200119 depends_on: accessible_network
120 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100121 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100122 metadata: {"role":"ucp"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200123 node_type: "ucp"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200124 key_name: { get_param: "OS::stack_name" }
125 image: { get_param: image }
126 flavor: { get_param: ucp_flavor }
127 accessible_network: { get_attr: [accessible_network, public_network] }
128 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
129 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
130 private_floating_interface: { get_param: private_floating_interface }
131 private_floating_network_cidr: { get_param: private_floating_network_cidr }
132 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
133 public_net_id: { get_param: public_net_id }
134 host_interface: { get_param: host_interface }
135 functions_override: { get_param: functions_override }
136
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100137
138 masters:
139 type: OS::Heat::ResourceGroup
140 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200141 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100142 properties:
143 count: { get_param: masters_size }
144 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200145 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100146 properties:
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100147 metadata: {"role":"master"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200148 node_type: "master"
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200149 key_name: { get_param: "OS::stack_name" }
150 image: { get_param: image }
151 flavor: { get_param: masters_flavor }
152 accessible_network: { get_attr: [accessible_network, public_network] }
153 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
154 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
155 private_floating_interface: { get_param: private_floating_interface }
156 private_floating_network_cidr: { get_param: private_floating_network_cidr }
157 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
158 public_net_id: { get_param: public_net_id }
159 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200160 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200161 functions_override: { get_param: functions_override }
162
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100163
164 workers:
165 type: OS::Heat::ResourceGroup
166 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200167 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100168 properties:
169 count: { get_param: worker_size }
170 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200171 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100172 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200173 metadata: { get_param: worker_metadata}
174 node_type: "worker"
175 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100176 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200177 flavor: { get_param: workers_flavor }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100178 key_name: { get_param: "OS::stack_name" }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200179 accessible_network: { get_attr: [accessible_network, public_network] }
180 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
181 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
182 private_floating_interface: { get_param: private_floating_interface }
183 private_floating_network_cidr: { get_param: private_floating_network_cidr }
184 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100185 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200186 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200187 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200188 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200189
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100190 cmps:
191 type: OS::Heat::ResourceGroup
192 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200193 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100194 properties:
195 count: { get_param: cmp_size }
196 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200197 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100198 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200199 metadata: { get_param: cmp_metadata }
200 node_type: "worker"
201 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100202 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200203 flavor: { get_param: cmps_flavor }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200204 accessible_network: { get_attr: [accessible_network, public_network] }
205 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
206 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
207 private_floating_interface: { get_param: private_floating_interface }
208 private_floating_network_cidr: { get_param: private_floating_network_cidr }
209 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100210 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200211 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200212 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200213 functions_override: { get_param: functions_override }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200214
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100215 gtws:
216 type: OS::Heat::ResourceGroup
217 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200218 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100219 properties:
220 count: { get_param: gtw_size }
221 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200222 type: MCP2::SrvInstances
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100223 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200224 metadata: { get_param: gtw_metadata }
225 node_type: "worker"
226 key_name: { get_param: "OS::stack_name" }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100227 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200228 flavor: { get_param: gtws_flavor }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200229 accessible_network: { get_attr: [accessible_network, public_network] }
230 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
231 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
232 private_floating_interface: { get_param: private_floating_interface }
233 private_floating_network_cidr: { get_param: private_floating_network_cidr }
234 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100235 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200236 host_interface: { get_param: host_interface }
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200237 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200238 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100239
sgudzb94b4c62020-02-05 13:21:25 +0200240 lmas:
241 type: OS::Heat::ResourceGroup
242 depends_on:
243 - ucp
244 properties:
245 count: { get_param: lma_size }
246 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200247 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200248 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200249 metadata: { get_param: lma_metadata }
250 node_type: "worker"
251 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200252 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200253 flavor: { get_param: lmas_flavor }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200254 accessible_network: { get_attr: [accessible_network, public_network] }
255 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
256 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
257 private_floating_interface: { get_param: private_floating_interface }
258 private_floating_network_cidr: { get_param: private_floating_network_cidr }
259 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200260 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200261 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200262 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200263 functions_override: { get_param: functions_override }
sgudzb94b4c62020-02-05 13:21:25 +0200264
265 osds:
266 type: OS::Heat::ResourceGroup
267 depends_on:
268 - ucp
269 properties:
270 count: { get_param: osd_size }
271 resource_def:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200272 type: MCP2::SrvInstances
sgudzb94b4c62020-02-05 13:21:25 +0200273 properties:
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200274 metadata: { get_param: osd_metadata }
275 node_type: "worker"
276 key_name: { get_param: "OS::stack_name" }
sgudzb94b4c62020-02-05 13:21:25 +0200277 image: { get_param: image }
sgudzfe58e8a2020-02-11 13:31:40 +0200278 flavor: { get_param: osds_flavor }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200279 accessible_network: { get_attr: [accessible_network, public_network] }
280 private_floating_network: { get_attr: [private_floating_network, private_floating_network_id] }
281 private_floating_subnet_id: { get_attr: [private_floating_network, private_floating_subnet_id] }
282 private_floating_interface: { get_param: private_floating_interface }
283 private_floating_network_cidr: { get_param: private_floating_network_cidr }
284 accessible_subnet_id: { get_attr: [accessible_network, accessible_subnet_id]}
sgudzb94b4c62020-02-05 13:21:25 +0200285 public_net_id: { get_param: public_net_id }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200286 host_interface: { get_param: host_interface }
sgudzb94b4c62020-02-05 13:21:25 +0200287 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200288 functions_override: { get_param: functions_override }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100289
290outputs:
291 ucp_ips:
292 description: Private IP addresses of the deployed ucp instances
293 value: { get_attr: [ucp, server_public_ip] }
294 masters_ips:
295 description: Private IP addresses of the deployed masters instances
296 value: { get_attr: [masters, server_public_ip] }
297 workers_ips:
298 description: Private IP addresses of the deployed worker instances
299 value: { get_attr: [workers, server_public_ip] }
300 cmps_ips:
301 description: Private IP addresses of the deployed cmp instances
302 value: { get_attr: [cmps, server_public_ip] }
303 gtws_ips:
304 description: Private IP addresses of the deployed gtw instances
305 value: { get_attr: [gtws, server_public_ip] }
sgudzb94b4c62020-02-05 13:21:25 +0200306 lmas_ips:
307 description: Private IP addresses of the deployed lma instances
308 value: { get_attr: [lmas, server_public_ip] }
309 osds_ips:
310 description: Private IP addresses of the deployed osd instances
311 value: { get_attr: [osds, server_public_ip] }
Oleh Hryhorov404e9572020-01-21 18:57:22 +0200312 worker_private_floating_ips:
313 description: IPs might be used as gateway
314 value: { get_attr: [workers, server_private_floating_ip] }
Oleh Hryhorov0019f592020-01-23 11:50:12 +0200315 private_floating_cidr:
316 value: { get_param: private_floating_network_cidr }
Oleh Hryhorovb58460e2020-02-05 15:53:48 +0200317 private_floating_network_pool_start:
318 value: { get_param: private_floating_network_pool_start }
319 private_floating_network_pool_end:
320 value: { get_param: private_floating_network_pool_end }
321 private_floating_network_gateway:
322 value: { get_param: private_floating_network_gateway }
323