blob: 8a2ba4da2243951ad95a75169e572bad57cd19ae [file] [log] [blame]
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +01001heat_template_version: queens
2
3parameters:
4 key_name:
5 type: string
6 description: Name of keypair to assign to servers
7 image:
8 type: string
9 description: Name of image to use for servers
10 flavor:
11 type: string
12 description: Flavor to use for servers
13 public_net_id:
14 type: string
15 description: >
16 ID of public network for which floating IP addresses will be allocated
17 masters_size:
18 type: number
19 description: Number of masters instances to deploy
20 default: 2
21 worker_size:
22 type: number
23 description: Number of workers to deploy
24 default: 5
25 cmp_size:
26 type: number
27 description: Number of cmp workers to deploy
28 default: 0
29 gtw_size:
30 type: number
31 description: Number of gtw workers to deploy
32 default: 0
33 ucp_boot_timeout:
34 type: number
35 description: Boot timeout for UCP instance
36 default: 1200
37 cluster_public_key:
38 type: string
Oleh Hryhorov0019f592020-01-23 11:50:12 +020039 private_floating_network_cidr:
40 type: string
41 default: '10.11.12.0/24'
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010042 worker_metadata:
43 type: json
44 cmp_metadata:
45 type: json
46 gtw_metadata:
47 type: json
48
49resources:
50 key_pair:
51 type: OS::Nova::KeyPair
52 properties:
53 name: { get_param: "OS::stack_name" }
54 public_key: { get_param: cluster_public_key}
55 save_private_key: false
56
57 network:
58 type: OS::Neutron::Net
59 subnet:
60 type: OS::Neutron::Subnet
61 properties:
62 network: { get_resource: network }
63 cidr: 10.10.0.0/24
64 dns_nameservers:
Vasyl Saienkoa096c482020-01-03 09:54:27 +020065 - 172.18.224.6
66 - 172.18.176.6
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010067 router:
68 type: OS::Neutron::Router
69 properties:
70 external_gateway_info:
71 network: { get_param: public_net_id }
72 router_iface:
73 type: OS::Neutron::RouterInterface
74 properties:
75 router: { get_resource: router }
76 subnet: { get_resource: subnet }
77
78 private_floating_network:
79 type: OS::Neutron::Net
80 properties:
81 port_security_enabled: false
82 private_floating_subnet:
83 type: OS::Neutron::Subnet
84 properties:
85 network: { get_resource: private_floating_network }
Oleh Hryhorov0019f592020-01-23 11:50:12 +020086 cidr: { get_param: private_floating_network_cidr }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010087 enable_dhcp: false
88 gateway_ip: ~
89
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +010090 ucp:
91 depends_on: router_iface
92 type: ./srv-group.yaml
93 properties:
94 image: { get_param: image }
95 flavor: { get_param: flavor }
96 key_name: { get_param: "OS::stack_name" }
97 public_net_id: { get_param: public_net_id }
98 private_net_id: { get_resource: network }
99 private_subnet_id: { get_resource: subnet }
100 private_floating_network: { get_resource: private_floating_network }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100101 metadata: {"role":"ucp"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200102 node_type: "ucp"
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100103
104 masters:
105 type: OS::Heat::ResourceGroup
106 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200107 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100108 properties:
109 count: { get_param: masters_size }
110 resource_def:
111 type: ./srv-group.yaml
112 properties:
113 image: { get_param: image }
114 flavor: { get_param: flavor }
115 key_name: { get_param: "OS::stack_name" }
116 public_net_id: { get_param: public_net_id }
117 private_net_id: { get_resource: network }
118 private_subnet_id: { get_resource: subnet }
119 private_floating_network: { get_resource: private_floating_network }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100120 metadata: {"role":"master"}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200121 node_type: "master"
122 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100123
124 workers:
125 type: OS::Heat::ResourceGroup
126 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200127 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100128 properties:
129 count: { get_param: worker_size }
130 resource_def:
131 type: ./srv-group.yaml
132 properties:
133 image: { get_param: image }
134 flavor: { get_param: flavor }
135 key_name: { get_param: "OS::stack_name" }
136 public_net_id: { get_param: public_net_id }
137 private_net_id: { get_resource: network }
138 private_subnet_id: { get_resource: subnet }
139 private_floating_network: { get_resource: private_floating_network }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100140 metadata: { get_param: worker_metadata}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200141 node_type: "worker"
142 ucp_master_host: { get_attr: [ucp, server_private_ip] }
143
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100144 cmps:
145 type: OS::Heat::ResourceGroup
146 depends_on:
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200147 - ucp
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100148 properties:
149 count: { get_param: cmp_size }
150 resource_def:
151 type: ./srv-group.yaml
152 properties:
153 image: { get_param: image }
154 flavor: { get_param: flavor }
155 key_name: { get_param: "OS::stack_name" }
156 public_net_id: { get_param: public_net_id }
157 private_net_id: { get_resource: network }
158 private_subnet_id: { get_resource: subnet }
159 private_floating_network: { get_resource: private_floating_network }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100160 metadata: { get_param: cmp_metadata}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200161 node_type: "worker"
162 ucp_master_host: { get_attr: [ucp, server_private_ip] }
163
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100164 gtws:
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: gtw_size }
170 resource_def:
171 type: ./srv-group.yaml
172 properties:
173 image: { get_param: image }
174 flavor: { get_param: flavor }
175 key_name: { get_param: "OS::stack_name" }
176 public_net_id: { get_param: public_net_id }
177 private_net_id: { get_resource: network }
178 private_subnet_id: { get_resource: subnet }
179 private_floating_network: { get_resource: private_floating_network }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100180 metadata: { get_param: gtw_metadata}
Vasyl Saienko3ab29c92020-01-03 10:39:03 +0200181 node_type: "worker"
182 ucp_master_host: { get_attr: [ucp, server_private_ip] }
Gerrit MCPbbf9d5d2019-12-19 13:47:41 +0100183
184
185outputs:
186 ucp_ips:
187 description: Private IP addresses of the deployed ucp instances
188 value: { get_attr: [ucp, server_public_ip] }
189 masters_ips:
190 description: Private IP addresses of the deployed masters instances
191 value: { get_attr: [masters, server_public_ip] }
192 workers_ips:
193 description: Private IP addresses of the deployed worker instances
194 value: { get_attr: [workers, server_public_ip] }
195 cmps_ips:
196 description: Private IP addresses of the deployed cmp instances
197 value: { get_attr: [cmps, server_public_ip] }
198 gtws_ips:
199 description: Private IP addresses of the deployed gtw instances
200 value: { get_attr: [gtws, server_public_ip] }
Oleh Hryhorov404e9572020-01-21 18:57:22 +0200201 worker_private_floating_ips:
202 description: IPs might be used as gateway
203 value: { get_attr: [workers, server_private_floating_ip] }
Oleh Hryhorov0019f592020-01-23 11:50:12 +0200204 private_floating_cidr:
205 value: { get_param: private_floating_network_cidr }