bdc23ff6a325c918111f6ee5efbc893c475495d7
[fuel.git] / mcp / reclass / classes / cluster / mcp-common-ha / openstack_init.yml.j2
1 ##############################################################################
2 # Copyright (c) 2018 Mirantis Inc., Enea AB and others.
3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
7 ##############################################################################
8 {%- import 'net_map.j2' as nm with context %}
9 ---
10 parameters:
11   _param:
12     # openstack service addresses
13 {%- if conf.MCP_VCP %}
14     openstack_proxy_control_address: ${_param:opnfv_openstack_proxy_control_address}
15     openstack_proxy_node01_control_address: ${_param:opnfv_openstack_proxy_node01_control_address}
16     openstack_proxy_node02_control_address: ${_param:opnfv_openstack_proxy_node02_control_address}
17 {%- else %}
18     openstack_proxy_control_address: ${_param:opnfv_openstack_control_address}
19     openstack_proxy_node01_control_address: ${_param:opnfv_openstack_control_node01_address}
20     openstack_proxy_node02_control_address: ${_param:opnfv_openstack_control_node03_address}
21 {%- endif %}
22
23     openstack_proxy_address: ${_param:opnfv_openstack_proxy_address}
24     openstack_proxy_node01_address: ${_param:opnfv_openstack_proxy_node01_address}
25     openstack_proxy_node02_address: ${_param:opnfv_openstack_proxy_node02_address}
26
27     openstack_control_address: ${_param:opnfv_openstack_control_address}
28     openstack_control_node01_address: ${_param:opnfv_openstack_control_node01_address}
29     openstack_control_node02_address: ${_param:opnfv_openstack_control_node02_address}
30     openstack_control_node03_address: ${_param:opnfv_openstack_control_node03_address}
31
32 {%- if conf.MCP_VCP %}
33     openstack_database_address: ${_param:opnfv_openstack_database_address}
34     openstack_database_node01_address: ${_param:opnfv_openstack_database_node01_address}
35     openstack_database_node02_address: ${_param:opnfv_openstack_database_node02_address}
36     openstack_database_node03_address: ${_param:opnfv_openstack_database_node03_address}
37
38     openstack_message_queue_address: ${_param:opnfv_openstack_message_queue_address}
39     openstack_message_queue_node01_address: ${_param:opnfv_openstack_message_queue_node01_address}
40     openstack_message_queue_node02_address: ${_param:opnfv_openstack_message_queue_node02_address}
41     openstack_message_queue_node03_address: ${_param:opnfv_openstack_message_queue_node03_address}
42
43     openstack_telemetry_address: ${_param:opnfv_openstack_telemetry_address}
44     openstack_telemetry_node01_address: ${_param:opnfv_openstack_telemetry_node01_address}
45     openstack_telemetry_node02_address: ${_param:opnfv_openstack_telemetry_node02_address}
46     openstack_telemetry_node03_address: ${_param:opnfv_openstack_telemetry_node03_address}
47 {%- else %}
48     openstack_database_address: ${_param:openstack_control_address}
49     openstack_database_node01_address: ${_param:openstack_control_node01_address}
50     openstack_database_node02_address: ${_param:openstack_control_node02_address}
51     openstack_database_node03_address: ${_param:openstack_control_node03_address}
52
53     openstack_message_queue_address: ${_param:openstack_control_address}
54     openstack_message_queue_node01_address: ${_param:openstack_control_node01_address}
55     openstack_message_queue_node02_address: ${_param:openstack_control_node02_address}
56     openstack_message_queue_node03_address: ${_param:openstack_control_node03_address}
57
58     openstack_telemetry_address: ${_param:openstack_control_address}
59     openstack_telemetry_node01_address: ${_param:openstack_control_node01_address}
60     openstack_telemetry_node02_address: ${_param:openstack_control_node02_address}
61     openstack_telemetry_node03_address: ${_param:openstack_control_node03_address}
62 {%- endif %}
63
64     # openstack service hostnames
65 {%- if conf.MCP_VCP %}
66     openstack_proxy_hostname: prx
67     openstack_proxy_node01_hostname: prx01
68     openstack_proxy_node02_hostname: prx02
69     openstack_control_hostname: ctl
70     openstack_control_node01_hostname: ctl01
71     openstack_control_node02_hostname: ctl02
72     openstack_control_node03_hostname: ctl03
73     openstack_database_hostname: dbs
74     openstack_database_node01_hostname: dbs01
75     openstack_database_node02_hostname: dbs02
76     openstack_database_node03_hostname: dbs03
77     openstack_message_queue_hostname: msg
78     openstack_message_queue_node01_hostname: msg01
79     openstack_message_queue_node02_hostname: msg02
80     openstack_message_queue_node03_hostname: msg03
81     openstack_telemetry_hostname: mdb
82     openstack_telemetry_node01_hostname: mdb01
83     openstack_telemetry_node02_hostname: mdb02
84     openstack_telemetry_node03_hostname: mdb03
85 {%- else %}
86     openstack_proxy_hostname: ${_param:openstack_control_hostname}
87     openstack_proxy_node01_hostname: ${_param:openstack_control_node01_hostname}
88     openstack_proxy_node02_hostname: ${_param:openstack_control_node03_hostname}
89     openstack_control_hostname: kvm
90     openstack_control_node01_hostname: kvm01
91     openstack_control_node02_hostname: kvm02
92     openstack_control_node03_hostname: kvm03
93     openstack_database_hostname: ${_param:openstack_control_hostname}
94     openstack_database_node01_hostname: ${_param:openstack_control_node01_hostname}
95     openstack_database_node02_hostname: ${_param:openstack_control_node02_hostname}
96     openstack_database_node03_hostname: ${_param:openstack_control_node03_hostname}
97     openstack_message_queue_hostname: ${_param:openstack_control_hostname}
98     openstack_message_queue_node01_hostname: ${_param:openstack_control_node01_hostname}
99     openstack_message_queue_node02_hostname: ${_param:openstack_control_node02_hostname}
100     openstack_message_queue_node03_hostname: ${_param:openstack_control_node03_hostname}
101     openstack_telemetry_hostname: ${_param:openstack_control_hostname}
102     openstack_telemetry_node01_hostname: ${_param:openstack_control_node01_hostname}
103     openstack_telemetry_node02_hostname: ${_param:openstack_control_node02_hostname}
104     openstack_telemetry_node03_hostname: ${_param:openstack_control_node03_hostname}
105 {%- endif %}
106
107     # openstack compute
108     openstack_compute_node01_hostname: cmp001
109     openstack_compute_node02_hostname: cmp002
110
111     openstack_region: RegionOne
112     admin_email: root@localhost
113     db_connection_recycle_time: 300
114     # Neutron osv/nodvr
115     neutron_control_dvr: 'False'
116     neutron_global_physnet_mtu: 1500
117     neutron_external_mtu: 1500
118     neutron_gateway_dvr: 'False'
119     neutron_gateway_agent_mode: legacy
120     neutron_compute_dvr: 'False'
121     neutron_compute_agent_mode: legacy
122     neutron_compute_external_access: 'True'
123     galera_server_cluster_name: openstack_cluster
124     glance_version: ${_param:openstack_version}
125     glance_service_host: ${_param:openstack_control_address}
126     keystone_version: ${_param:openstack_version}
127     keystone_service_host: ${_param:openstack_control_address}
128     heat_version: ${_param:openstack_version}
129     heat_service_host: ${_param:openstack_control_address}
130     cinder_version: ${_param:openstack_version}
131     cinder_service_host: ${_param:openstack_control_address}
132     ceilometer_version: ${_param:openstack_version}
133     ceilometer_service_host: ${_param:openstack_telemetry_address}
134     nova_version: ${_param:openstack_version}
135     nova_service_host: ${_param:openstack_control_address}
136     neutron_version: ${_param:openstack_version}
137     neutron_service_host: ${_param:openstack_control_address}
138 {%- if conf.MCP_VCP %}
139     glusterfs_service_host: ${_param:infra_kvm_address}
140 {%- else %}
141     glusterfs_service_host: ${_param:openstack_control_address}
142 {%- endif %}
143     mysql_admin_user: root
144     aodh_version: ${_param:openstack_version}
145     barbican_version: ${_param:openstack_version}
146     barbican_service_host: ${_param:openstack_control_address}
147     apache_barbican_api_address: ${_param:single_address}
148     barbican_integration_enabled: true
149     horizon_version: ${_param:openstack_version}
150     horizon_identity_host: ${_param:openstack_control_address}
151     horizon_identity_encryption: none
152     horizon_identity_version: 3
153     apache_mods_status_enabled: false
154     nginx_server_site_nginx_proxy_openstack_web_enabled: true
155     aodh_service_host: ${_param:openstack_telemetry_address}
156     gnocchi_version: 4.3
157     gnocchi_service_host: ${_param:openstack_telemetry_address}
158     panko_version: ${_param:openstack_version}
159     panko_service_host: ${_param:openstack_telemetry_address}
160     ceilometer_agent_default_polling_interval: 180
161     ceilometer_agent_default_polling_meters:
162       - "*"
163     designate_service_host: ${_param:openstack_control_address}
164     designate_domain_id: 5186883b-91fb-4891-bd49-e6769234a8fc
165     designate_pool_ns_records:
166       - hostname: 'ns1.example.org.'
167         priority: 10
168     designate_pool_nameservers:
169       - host: ${_param:openstack_control_node01_address}
170         port: 53
171       - host: ${_param:openstack_control_node02_address}
172         port: 53
173       - host: ${_param:openstack_control_node03_address}
174         port: 53
175     designate_pool_target_type: bind9
176     designate_pool_target_masters:
177       - host: ${_param:openstack_control_node01_address}
178         port: 5354
179       - host: ${_param:openstack_control_node02_address}
180         port: 5354
181       - host: ${_param:openstack_control_node03_address}
182         port: 5354
183     designate_pool_target_options:
184       host: ${_param:openstack_control_node01_address}
185       port: 53
186       rndc_host: ${_param:openstack_control_node01_address}
187       rndc_port: 953
188       rndc_key_file: /etc/designate/rndc.key
189     designate_version: ${_param:openstack_version}
190     # Billing
191     # keystone_billometer_password: opnfv_secret
192     # keystone_billometer_address: ${_param:billometer_service_host}
193     # billometer_service_host: ${_param:openstack_billing_address}
194     # billometer_version: ${_param:openstack_version}
195     # billometer_secret_key: opnfv_secretpasswordpasswordpassword
196     # billometer_identity_password: ${_param:keystone_billometer_password}
197     # billometer_identity_host: ${_param:openstack_control_address}
198     # billometer_identity_token: ${_param:keystone_service_token}
199   linux:
200     system:
201 {%- if 'aarch64' in nm.cluster.arch %}
202       repo:
203         armband_3:  # Should be in sync with the repo config generated via curtin/MaaS
204           source: "deb http://linux.enea.com/mcp-repos/${_param:armband_repo_version}/xenial ${_param:armband_repo_version}-armband main"
205           key: ${_param:armband_key}
206           pin:
207             - pin: 'release a=${_param:armband_repo_version}-armband'
208               priority: 15
209               package: '*'
210 {%- endif %}
211       kernel:
212         sysctl:
213           net.ipv4.tcp_congestion_control: yeah
214           net.ipv4.tcp_slow_start_after_idle: 0
215           net.ipv4.tcp_fin_timeout: 30
216       package:
217         python-tornado:
218           version: latest
219     network:
220       host:
221 {%- if conf.MCP_VCP %}
222         prx:
223           address: ${_param:openstack_proxy_control_address}
224           names:
225             - ${_param:openstack_proxy_hostname}
226             - ${_param:openstack_proxy_hostname}.${_param:cluster_domain}
227         prx01:
228           address: ${_param:openstack_proxy_node01_control_address}
229           names:
230             - ${_param:openstack_proxy_node01_hostname}
231             - ${_param:openstack_proxy_node01_hostname}.${_param:cluster_domain}
232         prx02:
233           address: ${_param:openstack_proxy_node02_control_address}
234           names:
235             - ${_param:openstack_proxy_node02_hostname}
236             - ${_param:openstack_proxy_node02_hostname}.${_param:cluster_domain}
237         ctl:
238           address: ${_param:openstack_control_address}
239           names:
240             - ${_param:openstack_control_hostname}
241             - ${_param:openstack_control_hostname}.${_param:cluster_domain}
242         ctl01:
243           address: ${_param:openstack_control_node01_address}
244           names:
245             - ${_param:openstack_control_node01_hostname}
246             - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
247         ctl02:
248           address: ${_param:openstack_control_node02_address}
249           names:
250             - ${_param:openstack_control_node02_hostname}
251             - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
252         ctl03:
253           address: ${_param:openstack_control_node03_address}
254           names:
255             - ${_param:openstack_control_node03_hostname}
256             - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
257         msg:
258           address: ${_param:openstack_message_queue_address}
259           names:
260             - ${_param:openstack_message_queue_hostname}
261             - ${_param:openstack_message_queue_hostname}.${_param:cluster_domain}
262         msg01:
263           address: ${_param:openstack_message_queue_node01_address}
264           names:
265             - ${_param:openstack_message_queue_node01_hostname}
266             - ${_param:openstack_message_queue_node01_hostname}.${_param:cluster_domain}
267         msg02:
268           address: ${_param:openstack_message_queue_node02_address}
269           names:
270             - ${_param:openstack_message_queue_node02_hostname}
271             - ${_param:openstack_message_queue_node02_hostname}.${_param:cluster_domain}
272         msg03:
273           address: ${_param:openstack_message_queue_node03_address}
274           names:
275             - ${_param:openstack_message_queue_node03_hostname}
276             - ${_param:openstack_message_queue_node03_hostname}.${_param:cluster_domain}
277         dbs:
278           address: ${_param:openstack_database_address}
279           names:
280             - ${_param:openstack_database_hostname}
281             - ${_param:openstack_database_hostname}.${_param:cluster_domain}
282         dbs01:
283           address: ${_param:openstack_database_node01_address}
284           names:
285             - ${_param:openstack_database_node01_hostname}
286             - ${_param:openstack_database_node01_hostname}.${_param:cluster_domain}
287         dbs02:
288           address: ${_param:openstack_database_node02_address}
289           names:
290             - ${_param:openstack_database_node02_hostname}
291             - ${_param:openstack_database_node02_hostname}.${_param:cluster_domain}
292         dbs03:
293           address: ${_param:openstack_database_node03_address}
294           names:
295             - ${_param:openstack_database_node03_hostname}
296             - ${_param:openstack_database_node03_hostname}.${_param:cluster_domain}
297         mdb:
298           address: ${_param:openstack_telemetry_address}
299           names:
300             - ${_param:openstack_telemetry_hostname}
301             - ${_param:openstack_telemetry_hostname}.${_param:cluster_domain}
302         mdb01:
303           address: ${_param:openstack_telemetry_node01_address}
304           names:
305             - ${_param:openstack_telemetry_node01_hostname}
306             - ${_param:openstack_telemetry_node01_hostname}.${_param:cluster_domain}
307         mdb02:
308           address: ${_param:openstack_telemetry_node02_address}
309           names:
310             - ${_param:openstack_telemetry_node02_hostname}
311             - ${_param:openstack_telemetry_node02_hostname}.${_param:cluster_domain}
312         mdb03:
313           address: ${_param:openstack_telemetry_node03_address}
314           names:
315             - ${_param:openstack_telemetry_node03_hostname}
316             - ${_param:openstack_telemetry_node03_hostname}.${_param:cluster_domain}
317 {%- else %}
318         kvm:
319           address: ${_param:openstack_control_address}
320           names:
321             - ${_param:openstack_control_hostname}
322             - ${_param:openstack_control_hostname}.${_param:cluster_domain}
323         kvm01:
324           address: ${_param:openstack_control_node01_address}
325           names:
326             - ${_param:openstack_control_node01_hostname}
327             - ${_param:openstack_control_node01_hostname}.${_param:cluster_domain}
328         kvm02:
329           address: ${_param:openstack_control_node02_address}
330           names:
331             - ${_param:openstack_control_node02_hostname}
332             - ${_param:openstack_control_node02_hostname}.${_param:cluster_domain}
333         kvm03:
334           address: ${_param:openstack_control_node03_address}
335           names:
336             - ${_param:openstack_control_node03_hostname}
337             - ${_param:openstack_control_node03_hostname}.${_param:cluster_domain}
338 {%- endif %}
339 {#- For compute nodes, expand values in-place, bypassing reclass param expansion #}
340 {%- for cmp in range(1, nm.cmp_nodes + 1) %}
341   {%- set h = 'cmp%03d' | format(cmp) %}
342   {%- set mgmt = nm.net_mgmt_hosts | length + nm.start_ip[nm.net_mgmt] + loop.index %}
343         {{ h }}:
344           address: {{ nm.net_mgmt | ipnet_hostaddr(mgmt) }}
345           names:
346             - {{ h }}
347             - {{ h }}.${_param:cluster_domain}
348 {%- endfor %}