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