blob: 8e3744866bcba33d6955f458494de32725935bcf [file] [log] [blame]
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +02001heat_template_version: queens
2
3parameters:
4 image:
5 type: string
6 description: Name of image to use for servers
7 public_net_id:
8 type: string
9 default: ''
10 description: >
11 ID of public network for which floating IP addresses will be allocated/
12 for baremetal case flat provision network for nodes
Oleh Hryhorov207137d2021-04-13 12:03:39 +030013 dns_nameservers:
14 type: json
15 default: ['172.18.224.6', '172.18.176.6']
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +020016 lab_network_cidr:
17 type: string
18 default: '10.0.0.0/8'
19 main_network_cidr:
20 type: string
21 default: '10.0.0.0/16'
22 main_control_network_cidr:
23 type: string
24 description: The CIDR of control network, used to detect control interface.
25 default: '10.0.1.0/24'
26 main_tunnel_network_cidr:
27 type: string
28 default: '10.0.2.0/24'
29 main_storage_frontend_network_cidr:
30 type: string
Oleh Hryhorov207137d2021-04-13 12:03:39 +030031 default: '10.12.0.0/24'
32 main_storage_frontend_interface:
33 type: string
34 default: 'ens5'
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +020035 main_storage_backend_network_cidr:
36 type: string
Oleh Hryhorov207137d2021-04-13 12:03:39 +030037 default: '10.11.0.0/24'
38 main_storage_backend_interface:
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +020039 type: string
Oleh Hryhorov207137d2021-04-13 12:03:39 +030040 default: 'ens6'
41 private_floating_network_cidr:
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +020042 type: string
Oleh Hryhorov207137d2021-04-13 12:03:39 +030043 default: '10.11.12.0/24'
44 private_floating_network_ipam_pool_start:
45 type: string
46 description: pool start which is used as pool for IPAM and assigned to instances port
47 default: '10.11.12.2'
48 private_floating_network_ipam_pool_end:
49 type: string
50 description: pool end which is used as pool for IPAM and assigned to instances port
51 default: '10.11.12.99'
52 private_floating_network_pool_start:
53 type: string
54 default: '10.11.12.100'
55 private_floating_network_pool_end:
56 type: string
57 default: '10.11.12.200'
58 private_floating_network_gateway:
59 type: string
60 default: ''
61 private_floating_network_interface:
62 type: string
63 default: 'veth-phy'
64 private_floating_interface:
65 description: Interface which carries floating network for child OpenStack.
66 type: string
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +020067 rack01_network_cidr:
68 type: string
69 default: '10.1.0.0/16'
70 rack01_control_network_cidr:
71 type: string
72 description: The CIDR of control network, used to detect control interface.
73 default: '10.1.1.0/24'
74 rack01_central_router_uplink_network_cidr:
75 type: string
76 default: '192.168.0.0/28'
77 rack02_network_cidr:
78 type: string
79 default: '10.2.0.0/16'
80 rack02_control_network_cidr:
81 type: string
82 description: The CIDR of control network, used to detect control interface.
83 default: '10.2.1.0/24'
84 rack02_central_router_uplink_network_cidr:
85 type: string
86 default: '192.168.0.16/28'
87 main_worker_size:
88 type: number
89 description: Number of workers to deploy
90 default: 3
91 rack01_cmp_size:
92 type: number
93 description: Number of cmp workers to deploy
94 default: 0
95 rack02_cmp_size:
96 type: number
97 description: Number of cmp workers to deploy
98 default: 0
99 cluster_public_key:
100 type: string
101 ucp_metadata:
102 type: json
103 default: {"role":"ucp"}
104 main_worker_metadata:
105 type: json
106 default: {}
107 rack01_cmp_metadata:
108 type: json
109 default: {}
110 rack02_cmp_metadata:
111 type: json
112 default: {}
113 ucp_flavor:
114 type: string
115 default: 'kaas-bm.worker'
116 main_worker_flavor:
117 type: string
118 default: 'system.compact.openstack.control'
119 rack01_cmp_flavor:
120 type: string
121 default: 'system.compact.openstack.control'
122 rack02_cmp_flavor:
123 type: string
124 default: 'system.compact.openstack.control'
125 docker_ee_url:
126 type: string
Vasyl Saienko552250d2021-03-19 12:07:23 +0200127 default: 'https://storebits.docker.com/ubuntu'
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200128 docker_ee_release:
129 type: string
130 default: 'stable-19.03'
131 docker_ucp_image:
132 type: string
133 default: 'docker/ucp:3.2.4'
Stepan Rogov60bc3522020-12-16 17:43:25 +0300134 docker_default_address_pool:
135 type: string
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300136 description: Default address pool for Docker ucp specific local networks
137 default: '10.10.1.0/16'
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200138 tunnel_interface:
139 type: string
140 default: ''
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300141 tungstenfabric_enabled:
142 type: boolean
143 default: false
144 live_migration_interface:
145 type: string
146 default: ''
147 metallb_address_pools:
148 type: comma_delimited_list
149 default: ''
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200150 main_worker_hardware_metadata:
151 type: string
152 default: ''
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300153 central_boot_timeout:
154 type: number
155 description: Boot timeout for central site instances
156 default: 5400
157 rack_boot_timeout:
158 type: number
159 description: Boot timeout for rack instances
160 default: 3600
161 rack_private_floating_interface:
162 type: string
163 rack_functions_override:
164 type: string
165 default: ''
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200166
167resources:
168 keypair_name:
169 type: OS::Heat::RandomString
170 properties:
171 character_classes: [{"class": "hexdigits", "min": 1}]
172 length: 128
173 salt: constant
174 key_pair:
175 type: OS::Nova::KeyPair
176 properties:
177 name: { get_attr: [keypair_name, value] }
178 public_key: { get_param: cluster_public_key }
179 save_private_key: false
180
181 central_site:
182 type: MCP2::CentralSite
183 properties:
184 ucp_metadata: { get_param: ucp_metadata}
185 docker_ee_url: { get_param: docker_ee_url }
186 docker_ee_release: { get_param: docker_ee_release }
187 docker_ucp_image: { get_param: docker_ucp_image}
Stepan Rogov60bc3522020-12-16 17:43:25 +0300188 docker_default_address_pool: { get_param: docker_default_address_pool }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200189 key_name: { get_attr: [keypair_name, value] }
190 image: { get_param: image }
191 ucp_flavor: { get_param: ucp_flavor }
192 public_net_id: { get_param: public_net_id }
193 control_network_cidr: { get_param: main_control_network_cidr }
194 tunnel_network_cidr: { get_param: main_tunnel_network_cidr }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300195 storage_frontend_interface: { get_param: main_storage_frontend_interface }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200196 storage_frontend_network_cidr: { get_param: main_storage_frontend_network_cidr }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300197 storage_backend_interface: { get_param: main_storage_backend_interface }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200198 storage_backend_network_cidr: { get_param: main_storage_backend_network_cidr }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300199 private_floating_network_cidr: { get_param: private_floating_network_cidr }
200 private_floating_interface: { get_param: private_floating_interface }
201 private_floating_network_ipam_pool_start: { get_param: private_floating_network_ipam_pool_start }
202 private_floating_network_ipam_pool_end: { get_param: private_floating_network_ipam_pool_end }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200203 worker_size: { get_param: main_worker_size }
204 worker_flavor: { get_param: main_worker_flavor }
205 worker_metadata: { get_param: main_worker_metadata }
206 worker_hardware_metadata: { get_param: main_worker_hardware_metadata }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300207 dns_nameservers: { get_param: dns_nameservers }
208 boot_timeout: { get_param: central_boot_timeout }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200209
210 rack01_router_routes:
211 type: MCP2::RackRouterRoutes
212 properties:
213 central_router: { get_attr: [central_site, router_id] }
214 central_router_uplink_network_cidr: { get_param: rack01_central_router_uplink_network_cidr }
215 site_cidr: { get_param: rack01_network_cidr }
216 lab_network_cidr: { get_param: lab_network_cidr }
217 public_net_id: { get_param: public_net_id }
218
219 rack01:
220 depends_on:
221 - central_site
222 type: MCP2::Rack
223 properties:
224 docker_ee_url: { get_param: docker_ee_url }
225 docker_ee_release: { get_param: docker_ee_release }
226 docker_ucp_image: { get_param: docker_ucp_image}
Stepan Rogov60bc3522020-12-16 17:43:25 +0300227 docker_default_address_pool: { get_param: docker_default_address_pool }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200228 key_name: { get_attr: [keypair_name, value] }
229 image: { get_param: image }
230 public_net_id: { get_param: public_net_id }
231 control_network_cidr: { get_param: rack01_control_network_cidr }
232 cmp_size: { get_param: rack01_cmp_size }
233 cmp_flavor: { get_param: rack01_cmp_flavor }
234 cmp_metadata: { get_param: rack01_cmp_metadata }
235 ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
236 rack_router: {get_attr: [rack01_router_routes, router_id] }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300237 boot_timeout: { get_param: rack_boot_timeout }
238 private_floating_interface: { get_param: rack_private_floating_interface }
239 functions_override: { get_param: rack_functions_override }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200240
241 rack02_router_routes:
242 depends_on:
243 - rack01_router_routes
244 type: MCP2::RackRouterRoutes
245 properties:
246 central_router: { get_attr: [central_site, router_id] }
247 central_router_uplink_network_cidr: { get_param: rack02_central_router_uplink_network_cidr }
248 site_cidr: { get_param: rack02_network_cidr }
249 lab_network_cidr: { get_param: lab_network_cidr }
250 public_net_id: { get_param: public_net_id }
251
252 rack02:
253 depends_on:
254 - central_site
255 type: MCP2::Rack
256 properties:
257 docker_ee_url: { get_param: docker_ee_url }
258 docker_ee_release: { get_param: docker_ee_release }
259 docker_ucp_image: { get_param: docker_ucp_image}
Stepan Rogov60bc3522020-12-16 17:43:25 +0300260 docker_default_address_pool: { get_param: docker_default_address_pool }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200261 key_name: { get_attr: [keypair_name, value] }
262 image: { get_param: image }
263 public_net_id: { get_param: public_net_id }
264 control_network_cidr: { get_param: rack02_control_network_cidr }
265 cmp_size: { get_param: rack02_cmp_size }
266 cmp_flavor: { get_param: rack02_cmp_flavor }
267 cmp_metadata: { get_param: rack02_cmp_metadata }
268 ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
269 rack_router: {get_attr: [rack02_router_routes, router_id] }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300270 boot_timeout: { get_param: rack_boot_timeout }
271 private_floating_interface: { get_param: rack_private_floating_interface }
272 functions_override: { get_param: rack_functions_override }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200273
274outputs:
275 central_site_worker_public_ip:
276 description: IP address of server in private network
277 value: { get_attr: [central_site, worker_public_ip] }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300278 ucp_ips:
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200279 description: IP address of server in private network
280 value: { get_attr: [central_site, ucp_public_ip] }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300281 workers_wc_data:
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200282 description: Metadata from instance
283 value: { get_attr: [central_site, worker_wc_data]}
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300284 cmps_wc_data:
285 description: Metadata from cmps
286 value: {list_concat: [ {get_attr: [rack01, cmp_wc_data]}, {get_attr: [rack02, cmp_wc_data]} ]}
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200287 rack01_cmp_public_ip:
288 value: { get_attr: [rack01, cmp_public_ip] }
289 rack02_cmp_public_ip:
290 value: { get_attr: [rack02, cmp_public_ip] }
Oleh Hryhorov207137d2021-04-13 12:03:39 +0300291 worker_private_floating_ips:
292 description: IPs might be used as gateway
293 value: { get_attr: [central_site, server_private_floating_ip] }
294 private_floating_cidr:
295 value: { get_param: private_floating_network_cidr }
296 private_floating_network_pool_start:
297 value: { get_param: private_floating_network_pool_start }
298 private_floating_network_pool_end:
299 value: { get_param: private_floating_network_pool_end }
300 private_floating_network_gateway:
301 value: { get_param: private_floating_network_gateway }
302 live_migration_interface:
303 value: { get_param: live_migration_interface }
304 tunnel_interface:
305 value: { get_param: tunnel_interface }
306 metallb_address_pools:
307 value: { get_param: metallb_address_pools }
308 storage_frontend_network_cidr:
309 description: Storage network which is used as clientNet in Ceph CR
310 value: { get_param: main_storage_frontend_network_cidr }
311 storage_backend_network_cidr:
312 description: Storage network which is used as clusterNet in Ceph CR
313 value: { get_param: main_storage_backend_network_cidr }
314 private_floating_network_interface:
315 value: { get_param: private_floating_network_interface }
316 tungstenfabric_enabled:
317 value: { get_param: tungstenfabric_enabled }
318 workers_ips:
319 description: Private IP addresses of the deployed worker instances
320 value: { get_attr: [central_site, worker_public_ip] }
321 cmps_ips:
322 description: Private IP addresses of the deployed cmp instances
323 value: {list_concat: [ {get_attr: [rack01, cmp_public_ip]}, {get_attr: [rack02, cmp_public_ip]} ]}