blob: 5833899e888d7467d4edba0140e70ce930c97f29 [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
13 lab_network_cidr:
14 type: string
15 default: '10.0.0.0/8'
16 main_network_cidr:
17 type: string
18 default: '10.0.0.0/16'
19 main_control_network_cidr:
20 type: string
21 description: The CIDR of control network, used to detect control interface.
22 default: '10.0.1.0/24'
23 main_tunnel_network_cidr:
24 type: string
25 default: '10.0.2.0/24'
26 main_storage_frontend_network_cidr:
27 type: string
28 default: '10.0.3.0/24'
29 main_storage_backend_network_cidr:
30 type: string
31 default: '10.0.4.0/24'
32 main_private_floating_network_cidr:
33 type: string
34 default: '10.0.5.0/24'
35 main_private_floating_network_interface:
36 type: string
37 default: 'ens4'
38 rack01_network_cidr:
39 type: string
40 default: '10.1.0.0/16'
41 rack01_control_network_cidr:
42 type: string
43 description: The CIDR of control network, used to detect control interface.
44 default: '10.1.1.0/24'
45 rack01_central_router_uplink_network_cidr:
46 type: string
47 default: '192.168.0.0/28'
48 rack02_network_cidr:
49 type: string
50 default: '10.2.0.0/16'
51 rack02_control_network_cidr:
52 type: string
53 description: The CIDR of control network, used to detect control interface.
54 default: '10.2.1.0/24'
55 rack02_central_router_uplink_network_cidr:
56 type: string
57 default: '192.168.0.16/28'
58 main_worker_size:
59 type: number
60 description: Number of workers to deploy
61 default: 3
62 rack01_cmp_size:
63 type: number
64 description: Number of cmp workers to deploy
65 default: 0
66 rack02_cmp_size:
67 type: number
68 description: Number of cmp workers to deploy
69 default: 0
70 cluster_public_key:
71 type: string
72 ucp_metadata:
73 type: json
74 default: {"role":"ucp"}
75 main_worker_metadata:
76 type: json
77 default: {}
78 rack01_cmp_metadata:
79 type: json
80 default: {}
81 rack02_cmp_metadata:
82 type: json
83 default: {}
84 ucp_flavor:
85 type: string
86 default: 'kaas-bm.worker'
87 main_worker_flavor:
88 type: string
89 default: 'system.compact.openstack.control'
90 rack01_cmp_flavor:
91 type: string
92 default: 'system.compact.openstack.control'
93 rack02_cmp_flavor:
94 type: string
95 default: 'system.compact.openstack.control'
96 docker_ee_url:
97 type: string
Vasyl Saienko552250d2021-03-19 12:07:23 +020098 default: 'https://storebits.docker.com/ubuntu'
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +020099 docker_ee_release:
100 type: string
101 default: 'stable-19.03'
102 docker_ucp_image:
103 type: string
104 default: 'docker/ucp:3.2.4'
Stepan Rogov60bc3522020-12-16 17:43:25 +0300105 docker_default_address_pool:
106 type: string
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200107 tunnel_interface:
108 type: string
109 default: ''
110 main_worker_hardware_metadata:
111 type: string
112 default: ''
113
114resources:
115 keypair_name:
116 type: OS::Heat::RandomString
117 properties:
118 character_classes: [{"class": "hexdigits", "min": 1}]
119 length: 128
120 salt: constant
121 key_pair:
122 type: OS::Nova::KeyPair
123 properties:
124 name: { get_attr: [keypair_name, value] }
125 public_key: { get_param: cluster_public_key }
126 save_private_key: false
127
128 central_site:
129 type: MCP2::CentralSite
130 properties:
131 ucp_metadata: { get_param: ucp_metadata}
132 docker_ee_url: { get_param: docker_ee_url }
133 docker_ee_release: { get_param: docker_ee_release }
134 docker_ucp_image: { get_param: docker_ucp_image}
Stepan Rogov60bc3522020-12-16 17:43:25 +0300135 docker_default_address_pool: { get_param: docker_default_address_pool }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200136 key_name: { get_attr: [keypair_name, value] }
137 image: { get_param: image }
138 ucp_flavor: { get_param: ucp_flavor }
139 public_net_id: { get_param: public_net_id }
140 control_network_cidr: { get_param: main_control_network_cidr }
141 tunnel_network_cidr: { get_param: main_tunnel_network_cidr }
142 storage_frontend_network_cidr: { get_param: main_storage_frontend_network_cidr }
143 storage_backend_network_cidr: { get_param: main_storage_backend_network_cidr }
144 private_floating_network_cidr: { get_param: main_private_floating_network_cidr }
145 private_floating_network_interface: { get_param: main_private_floating_network_interface }
146 worker_size: { get_param: main_worker_size }
147 worker_flavor: { get_param: main_worker_flavor }
148 worker_metadata: { get_param: main_worker_metadata }
149 worker_hardware_metadata: { get_param: main_worker_hardware_metadata }
150
151 rack01_router_routes:
152 type: MCP2::RackRouterRoutes
153 properties:
154 central_router: { get_attr: [central_site, router_id] }
155 central_router_uplink_network_cidr: { get_param: rack01_central_router_uplink_network_cidr }
156 site_cidr: { get_param: rack01_network_cidr }
157 lab_network_cidr: { get_param: lab_network_cidr }
158 public_net_id: { get_param: public_net_id }
159
160 rack01:
161 depends_on:
162 - central_site
163 type: MCP2::Rack
164 properties:
165 docker_ee_url: { get_param: docker_ee_url }
166 docker_ee_release: { get_param: docker_ee_release }
167 docker_ucp_image: { get_param: docker_ucp_image}
Stepan Rogov60bc3522020-12-16 17:43:25 +0300168 docker_default_address_pool: { get_param: docker_default_address_pool }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200169 key_name: { get_attr: [keypair_name, value] }
170 image: { get_param: image }
171 public_net_id: { get_param: public_net_id }
172 control_network_cidr: { get_param: rack01_control_network_cidr }
173 cmp_size: { get_param: rack01_cmp_size }
174 cmp_flavor: { get_param: rack01_cmp_flavor }
175 cmp_metadata: { get_param: rack01_cmp_metadata }
176 ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
177 rack_router: {get_attr: [rack01_router_routes, router_id] }
178
179 rack02_router_routes:
180 depends_on:
181 - rack01_router_routes
182 type: MCP2::RackRouterRoutes
183 properties:
184 central_router: { get_attr: [central_site, router_id] }
185 central_router_uplink_network_cidr: { get_param: rack02_central_router_uplink_network_cidr }
186 site_cidr: { get_param: rack02_network_cidr }
187 lab_network_cidr: { get_param: lab_network_cidr }
188 public_net_id: { get_param: public_net_id }
189
190 rack02:
191 depends_on:
192 - central_site
193 type: MCP2::Rack
194 properties:
195 docker_ee_url: { get_param: docker_ee_url }
196 docker_ee_release: { get_param: docker_ee_release }
197 docker_ucp_image: { get_param: docker_ucp_image}
Stepan Rogov60bc3522020-12-16 17:43:25 +0300198 docker_default_address_pool: { get_param: docker_default_address_pool }
Vasyl Saienko5a58a5f2020-12-09 14:15:24 +0200199 key_name: { get_attr: [keypair_name, value] }
200 image: { get_param: image }
201 public_net_id: { get_param: public_net_id }
202 control_network_cidr: { get_param: rack02_control_network_cidr }
203 cmp_size: { get_param: rack02_cmp_size }
204 cmp_flavor: { get_param: rack02_cmp_flavor }
205 cmp_metadata: { get_param: rack02_cmp_metadata }
206 ucp_master_host: { get_attr: [central_site, ucp_control_ip] }
207 rack_router: {get_attr: [rack02_router_routes, router_id] }
208
209outputs:
210 central_site_worker_public_ip:
211 description: IP address of server in private network
212 value: { get_attr: [central_site, worker_public_ip] }
213 ucp_public_ip:
214 description: IP address of server in private network
215 value: { get_attr: [central_site, ucp_public_ip] }
216 central_site_worker_wc_data:
217 description: Metadata from instance
218 value: { get_attr: [central_site, worker_wc_data]}
219 rack01_cmp_public_ip:
220 value: { get_attr: [rack01, cmp_public_ip] }
221 rack02_cmp_public_ip:
222 value: { get_attr: [rack02, cmp_public_ip] }