blob: 4e4cba673f322413d40aed326b1d4601958da91d [file] [log] [blame]
Vasyl Saienkoeaf4fc42017-12-12 11:49:43 +02001{%- from "keystone/map.jinja" import server with context %}
Filip Pytloun943d6882015-10-06 16:28:32 +02002{%- if server.enabled %}
3
4keystone_packages:
5 pkg.installed:
6 - names: {{ server.pkgs }}
7
Filip Pytloun54c45662017-09-07 16:43:54 +02008{%- set ldap = {'enabled': False} %}
9{%- if server.get('backend') == 'ldap' %}
10 {%- do ldap.update({'enabled': True}) %}
11{%- else %}
12 {%- for domain in server.get('domain', {}).itervalues() %}
13 {%- if domain.get('ldap') %}
14 {%- do ldap.update({'enabled': True}) %}
15 {%- endif %}
16 {%- endfor %}
17{%- endif %}
18
19{%- if ldap.enabled %}
Ramon Melero96ff9122017-08-15 11:02:50 -050020keystone_ldap_packages:
21 pkg.installed:
22 - names:
23 - python-ldap
24 - python-ldappool
25{% endif %}
26
Alexander Noskov78b81e02016-12-05 16:20:50 +040027{%- if server.service_name in ['apache2', 'httpd'] %}
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +020028{%- set keystone_service = 'apache_service' %}
29
Tatyana Leontovichd06855c2017-04-24 21:03:22 +030030purge_not_needed_configs:
Marek Celoud073eb682017-04-11 10:48:48 +020031 file.absent:
Tatyana Leontovichd06855c2017-04-24 21:03:22 +030032 - names: ['/etc/apache2/sites-enabled/keystone.conf', '/etc/apache2/sites-enabled/wsgi-keystone.conf']
Marek Celoud073eb682017-04-11 10:48:48 +020033 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +020034 - service: {{ keystone_service }}
Marek Celoud073eb682017-04-11 10:48:48 +020035
Alexander Noskov78b81e02016-12-05 16:20:50 +040036include:
37- apache
38
39{%- if grains.os_family == "Debian" %}
40keystone:
41{%- endif %}
42{%- if grains.os_family == "RedHat" %}
43openstack-keystone:
44{%- endif %}
45 service.dead:
46 - enable: False
47 - watch:
48 - pkg: keystone_packages
49
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +020050{%- else %}
51
52{%- set keystone_service = 'keystone_service' %}
53
Alexander Noskov78b81e02016-12-05 16:20:50 +040054{%- endif %}
55
Filip Pytloun943d6882015-10-06 16:28:32 +020056{%- if not salt['user.info']('keystone') %}
57
58keystone_user:
59 user.present:
60 - name: keystone
61 - home: /var/lib/keystone
62 - uid: 301
63 - gid: 301
64 - shell: /bin/false
65 - system: True
66 - require_in:
67 - pkg: keystone_packages
68
69keystone_group:
70 group.present:
71 - name: keystone
72 - gid: 301
73 - system: True
74 - require_in:
75 - pkg: keystone_packages
76 - user: keystone_user
77
78{%- endif %}
79
80/etc/keystone/keystone.conf:
81 file.managed:
82 - source: salt://keystone/files/{{ server.version }}/keystone.conf.{{ grains.os_family }}
83 - template: jinja
84 - require:
85 - pkg: keystone_packages
Alexander Noskov78b81e02016-12-05 16:20:50 +040086 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +020087 - service: {{ keystone_service }}
Filip Pytloun943d6882015-10-06 16:28:32 +020088
Oleksii Chuprynebe09a52017-04-21 11:08:14 +030089{% if server.federation is defined %}
Alexander Noskov78b81e02016-12-05 16:20:50 +040090
91/etc/keystone/sso_callback_template.html:
92 file.managed:
93 - source: salt://keystone/files/sso_callback_template.html
94 - require:
95 - pkg: keystone_packages
96 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +020097 - service: {{ keystone_service }}
Alexander Noskov78b81e02016-12-05 16:20:50 +040098
99{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200100
101/etc/keystone/keystone-paste.ini:
102 file.managed:
103 - source: salt://keystone/files/{{ server.version }}/keystone-paste.ini.{{ grains.os_family }}
Jiri Broulikbd21be62017-08-14 15:31:29 +0200104 - user: keystone
105 - group: keystone
Filip Pytloun943d6882015-10-06 16:28:32 +0200106 - template: jinja
107 - require:
108 - pkg: keystone_packages
109 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200110 - service: {{ keystone_service }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200111
Dmitry Kalashnik494a17d2017-12-06 16:55:55 +0400112{%- if server.logging.log_appender %}
113
114{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
115keystone_fluentd_logger_package:
116 pkg.installed:
117 - name: python-fluent-logger
118{%- endif %}
Jiri Broulikbd21be62017-08-14 15:31:29 +0200119
120/etc/keystone/logging.conf:
121 file.managed:
Dmitry Kalashnik494a17d2017-12-06 16:55:55 +0400122 - user: keystone
123 - group: keystone
124 - source: salt://keystone/files/logging.conf
125 - template: jinja
126 - defaults:
127 values: {{ server }}
128 - require:
129 - pkg: keystone_packages
130{%- if server.logging.log_handlers.get('fluentd', {}).get('enabled', False) %}
131 - pkg: keystone_fluentd_logger_package
132{%- endif %}
133 - watch_in:
134 - service: {{ keystone_service }}
135
136/var/log/keystone/keystone.log:
137 file.managed:
138 - user: keystone
139 - group: keystone
140 - watch_in:
141 - service: {{ keystone_service }}
142
143{%- endif %}
144
145/etc/keystone/policy.json:
146 file.managed:
Jiri Broulikbd21be62017-08-14 15:31:29 +0200147 - user: keystone
148 - group: keystone
149 - require:
150 - pkg: keystone_packages
151 - watch_in:
152 - service: {{ keystone_service }}
153
Adam Tenglerb1ebaca2017-05-04 21:06:08 +0000154{%- for name, rule in server.get('policy', {}).iteritems() %}
155
156{%- if rule != None %}
157
158rule_{{ name }}_present:
159 keystone_policy.rule_present:
160 - path: /etc/keystone/policy.json
161 - name: {{ name }}
162 - rule: {{ rule }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200163 - require:
164 - pkg: keystone_packages
165 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200166 - service: {{ keystone_service }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200167
Adam Tenglerb1ebaca2017-05-04 21:06:08 +0000168{%- else %}
169
170rule_{{ name }}_absent:
171 keystone_policy.rule_absent:
172 - path: /etc/keystone/policy.json
173 - name: {{ name }}
174 - require:
175 - pkg: keystone_packages
Adam Tenglerb1ebaca2017-05-04 21:06:08 +0000176 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200177 - service: {{ keystone_service }}
Adam Tenglerb1ebaca2017-05-04 21:06:08 +0000178
179{%- endif %}
180
181{%- endfor %}
182
Filip Pytloun6b9ec2b2016-01-12 13:52:01 +0100183{%- if server.get("domain", {}) %}
184
185/etc/keystone/domains:
186 file.directory:
187 - mode: 0755
188 - require:
189 - pkg: keystone_packages
190
191{%- for domain_name, domain in server.domain.iteritems() %}
Ales Komarekaabbda62016-03-15 08:38:35 +0100192
Filip Pytloun6b9ec2b2016-01-12 13:52:01 +0100193/etc/keystone/domains/keystone.{{ domain_name }}.conf:
194 file.managed:
195 - source: salt://keystone/files/keystone.domain.conf
Filip Pytlounaf25d8d2016-01-12 14:21:39 +0100196 - template: jinja
Filip Pytloun6b9ec2b2016-01-12 13:52:01 +0100197 - require:
198 - file: /etc/keystone/domains
199 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200200 - service: {{ keystone_service }}
Filip Pytloun5b503852016-01-12 14:02:07 +0100201 - defaults:
Filip Pytlounaf25d8d2016-01-12 14:21:39 +0100202 domain_name: {{ domain_name }}
Filip Pytloun5b503852016-01-12 14:02:07 +0100203
Filip Pytloun19620f72016-01-19 16:27:00 +0100204{%- if domain.get('ldap', {}).get('tls', {}).get('cacert', False) %}
Ales Komarekaabbda62016-03-15 08:38:35 +0100205
Filip Pytloun3e2555e2016-01-12 20:23:34 +0100206keystone_domain_{{ domain_name }}_cacert:
207 file.managed:
208 - name: /etc/keystone/domains/{{ domain_name }}.pem
Filip Pytlounc7e3b812016-01-12 20:52:10 +0100209 - contents_pillar: keystone:server:domain:{{ domain_name }}:ldap:tls:cacert
Filip Pytloun3e2555e2016-01-12 20:23:34 +0100210 - require:
211 - file: /etc/keystone/domains
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200212 {%- if not grains.get('noservices', False) %}
Filip Pytloun3e2555e2016-01-12 20:23:34 +0100213 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200214 - service: {{ keystone_service }}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200215 {%- endif %}
Ales Komarekaabbda62016-03-15 08:38:35 +0100216
Filip Pytloun3e2555e2016-01-12 20:23:34 +0100217{%- endif %}
218
Filip Pytloun5b503852016-01-12 14:02:07 +0100219keystone_domain_{{ domain_name }}:
220 cmd.run:
221 - name: source /root/keystonercv3 && openstack domain create --description "{{ domain.description }}" {{ domain_name }}
Filip Pytloun54c45662017-09-07 16:43:54 +0200222 - unless: {% if grains.get('noservices') %}/bin/true{% else %}source /root/keystonercv3 && openstack domain list | grep " {{ domain_name }}"{% endif %}
Dmitry Stremkovskiy0ad884b2017-07-27 14:51:11 +0300223 - shell: /bin/bash
Filip Pytloun5b503852016-01-12 14:02:07 +0100224 - require:
225 - file: /root/keystonercv3
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200226 - service: {{ keystone_service }}
Ales Komarekaabbda62016-03-15 08:38:35 +0100227
Filip Pytloun6b9ec2b2016-01-12 13:52:01 +0100228{%- endfor %}
229
230{%- endif %}
231
Filip Pytloun19620f72016-01-19 16:27:00 +0100232{%- if server.get('ldap', {}).get('tls', {}).get('cacert', False) %}
Ales Komarekaabbda62016-03-15 08:38:35 +0100233
Filip Pytloun19620f72016-01-19 16:27:00 +0100234keystone_ldap_default_cacert:
235 file.managed:
236 - name: {{ server.ldap.tls.cacertfile }}
237 - contents_pillar: keystone:server:ldap:tls:cacert
238 - require:
239 - pkg: keystone_packages
240 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200241 - service: {{ keystone_service }}
Ales Komarekaabbda62016-03-15 08:38:35 +0100242
Filip Pytloun19620f72016-01-19 16:27:00 +0100243{%- endif %}
244
Martin Polreichabe6a6b2017-06-02 16:56:56 +0200245{%- if server.service_name not in ['apache2', 'httpd'] %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200246keystone_service:
247 service.running:
248 - name: {{ server.service_name }}
249 - enable: True
Martin Polreich962dfdd2017-06-08 14:04:14 +0200250 {%- if grains.get('noservices') %}
251 - onlyif: /bin/false
252 {%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200253 - watch:
Kirill Bespalov00984452017-08-01 17:44:11 +0300254 {%- if server.notification and server.message_queue.get('ssl',{}).get('enabled', False) %}
Kirill Bespalov33272a82017-11-15 13:40:26 +0300255 - file: rabbitmq_ca_keystone_server
Kirill Bespalov00984452017-08-01 17:44:11 +0300256 {%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200257 - file: /etc/keystone/keystone.conf
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200258{%- endif %}
259
260{%- if grains.get('virtual_subtype', None) == "Docker" %}
261keystone_entrypoint:
262 file.managed:
263 - name: /entrypoint.sh
264 - template: jinja
265 - source: salt://keystone/files/entrypoint.sh
266 - mode: 755
267{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200268
269/root/keystonerc:
270 file.managed:
271 - source: salt://keystone/files/keystonerc
272 - template: jinja
273 - require:
274 - pkg: keystone_packages
275
276/root/keystonercv3:
277 file.managed:
278 - source: salt://keystone/files/keystonercv3
279 - template: jinja
280 - require:
281 - pkg: keystone_packages
282
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200283{%- if not grains.get('noservices', False) %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200284keystone_syncdb:
285 cmd.run:
Igor Pukha3aa8e202017-05-03 15:42:50 +0300286 - name: keystone-manage db_sync && sleep 1
Ruslan Usichenko64cd3542017-01-30 15:59:44 +0200287 - timeout: 120
Filip Pytloun943d6882015-10-06 16:28:32 +0200288 - require:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200289 - service: {{ keystone_service }}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200290{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200291
292{% if server.tokens.engine == 'fernet' %}
293
Jakub Pavlik143338c2016-02-16 18:57:54 +0100294keystone_fernet_keys:
Filip Pytloun943d6882015-10-06 16:28:32 +0200295 file.directory:
Jakub Pavlik143338c2016-02-16 18:57:54 +0100296 - name: {{ server.tokens.location }}
297 - mode: 750
Filip Pytloun943d6882015-10-06 16:28:32 +0200298 - user: keystone
299 - group: keystone
300 - require:
301 - pkg: keystone_packages
302 - require_in:
303 - service: keystone_fernet_setup
304
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200305{%- if not grains.get('noservices', False) %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200306keystone_fernet_setup:
307 cmd.run:
308 - name: keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
309 - require:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200310 - service: {{ keystone_service }}
Jakub Pavlik143338c2016-02-16 18:57:54 +0100311 - file: keystone_fernet_keys
Andrey Shestakovd2563442017-06-15 17:08:46 +0300312{%- endif %}
Jakub Pavlikf61df542017-04-03 18:01:23 +0200313
Andrey Shestakovd2563442017-06-15 17:08:46 +0300314{% endif %}
315
Oleh Hryhorov284f2822017-10-26 10:58:10 +0300316{%- if server.version in ['newton', 'ocata', 'pike'] %}
Andrey Shestakovd2563442017-06-15 17:08:46 +0300317keystone_credential_keys:
318 file.directory:
319 - name: {{ server.credential.location }}
320 - mode: 750
321 - user: keystone
322 - group: keystone
323 - require:
324 - pkg: keystone_packages
325
326{%- if not grains.get('noservices', False) %}
327keystone_credential_setup:
Jakub Pavlikf61df542017-04-03 18:01:23 +0200328 cmd.run:
329 - name: keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
330 - require:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200331 - service: {{ keystone_service }}
Andrey Shestakovd2563442017-06-15 17:08:46 +0300332 - file: keystone_credential_keys
Jakub Pavlikf61df542017-04-03 18:01:23 +0200333{%- endif %}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200334{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200335
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200336{%- if not grains.get('noservices', False) %}
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200337
338{%- if not salt['pillar.get']('linux:system:repo:mirantis_openstack', False) %}
339
Filip Pytloun943d6882015-10-06 16:28:32 +0200340keystone_service_tenant:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300341 keystoneng.tenant_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200342 - name: {{ server.service_tenant }}
Andres Montalban06c35892016-09-23 12:24:38 -0300343 - connection_token: {{ server.service_token }}
344 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200345 - require:
346 - cmd: keystone_syncdb
347
348keystone_admin_tenant:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300349 keystoneng.tenant_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200350 - name: {{ server.admin_tenant }}
Andres Montalban06c35892016-09-23 12:24:38 -0300351 - connection_token: {{ server.service_token }}
352 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200353 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300354 - keystoneng: keystone_service_tenant
Filip Pytloun943d6882015-10-06 16:28:32 +0200355
356keystone_roles:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300357 keystoneng.role_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200358 - names: {{ server.roles }}
Andres Montalban06c35892016-09-23 12:24:38 -0300359 - connection_token: {{ server.service_token }}
360 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200361 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300362 - keystoneng: keystone_service_tenant
Filip Pytloun943d6882015-10-06 16:28:32 +0200363
Adam Tengler43c8a182017-09-08 09:54:31 +0000364{%- if not server.get('ldap', {}).get('read_only', False) %}
365
Filip Pytloun943d6882015-10-06 16:28:32 +0200366keystone_admin_user:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300367 keystoneng.user_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200368 - name: {{ server.admin_name }}
369 - password: {{ server.admin_password }}
370 - email: {{ server.admin_email }}
371 - tenant: {{ server.admin_tenant }}
372 - roles:
373 {{ server.admin_tenant }}:
374 - admin
Andres Montalban06c35892016-09-23 12:24:38 -0300375 - connection_token: {{ server.service_token }}
376 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200377 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300378 - keystoneng: keystone_admin_tenant
379 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200380
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200381{%- endif %}
382
Adam Tengler43c8a182017-09-08 09:54:31 +0000383{%- endif %}
384
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200385{%- for service_name, service in server.get('service', {}).iteritems() %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200386
387keystone_{{ service_name }}_service:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300388 keystoneng.service_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200389 - name: {{ service_name }}
390 - service_type: {{ service.type }}
391 - description: {{ service.description }}
Andres Montalban06c35892016-09-23 12:24:38 -0300392 - connection_token: {{ server.service_token }}
393 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200394 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300395 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200396
Petr Michalec685a2192017-03-06 14:58:01 +0100397keystone_{{ service_name }}_{{ service.get('region', 'RegionOne') }}_endpoint:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300398 keystoneng.endpoint_present:
Ales Komarekaabbda62016-03-15 08:38:35 +0100399 - name: {{ service.get('service', service_name) }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200400 - publicurl: '{{ service.bind.get('public_protocol', 'http') }}://{{ service.bind.public_address }}:{{ service.bind.public_port }}{{ service.bind.public_path }}'
401 - internalurl: '{{ service.bind.get('internal_protocol', 'http') }}://{{ service.bind.internal_address }}:{{ service.bind.internal_port }}{{ service.bind.internal_path }}'
402 - adminurl: '{{ service.bind.get('admin_protocol', 'http') }}://{{ service.bind.admin_address }}:{{ service.bind.admin_port }}{{ service.bind.admin_path }}'
403 - region: {{ service.get('region', 'RegionOne') }}
Andres Montalban06c35892016-09-23 12:24:38 -0300404 - connection_token: {{ server.service_token }}
405 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200406 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300407 - keystoneng: keystone_{{ service_name }}_service
Filip Pytloun943d6882015-10-06 16:28:32 +0200408
409{% if service.user is defined %}
410
411keystone_user_{{ service.user.name }}:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300412 keystoneng.user_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200413 - name: {{ service.user.name }}
414 - password: {{ service.user.password }}
415 - email: {{ server.admin_email }}
416 - tenant: {{ server.service_tenant }}
417 - roles:
418 {{ server.service_tenant }}:
419 - admin
Andres Montalban06c35892016-09-23 12:24:38 -0300420 - connection_token: {{ server.service_token }}
421 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200422 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300423 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200424
425{% endif %}
426
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200427{%- endfor %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200428
429{%- for tenant_name, tenant in server.get('tenant', {}).iteritems() %}
430
431keystone_tenant_{{ tenant_name }}:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300432 keystoneng.tenant_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200433 - name: {{ tenant_name }}
Andres Montalban06c35892016-09-23 12:24:38 -0300434 - connection_token: {{ server.service_token }}
435 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200436 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300437 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200438
439{%- for user_name, user in tenant.get('user', {}).iteritems() %}
440
441keystone_user_{{ user_name }}:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300442 keystoneng.user_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200443 - name: {{ user_name }}
444 - password: {{ user.password }}
445 - email: {{ user.get('email', 'root@localhost') }}
446 - tenant: {{ tenant_name }}
447 - roles:
448 {{ tenant_name }}:
449 {%- if user.get('roles', False) %}
450 {{ user.roles }}
451 {%- else %}
452 - Member
453 {%- endif %}
Andres Montalban06c35892016-09-23 12:24:38 -0300454 - connection_token: {{ server.service_token }}
455 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200456 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300457 - keystoneng: keystone_tenant_{{ tenant_name }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200458
459{%- endfor %}
460
461{%- endfor %}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200462{%- endif %} {# end noservices #}
Filip Pytloun943d6882015-10-06 16:28:32 +0200463
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300464{%- if server.database.get('ssl',{}).get('enabled',False) %}
Kirill Bespalov33272a82017-11-15 13:40:26 +0300465mysql_ca_keystone_server:
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300466{%- if server.database.ssl.cacert is defined %}
467 file.managed:
468 - name: {{ server.database.ssl.cacert_file }}
469 - contents_pillar: keystone:server:database:ssl:cacert
470 - mode: 0444
471 - makedirs: true
472 - require_in:
473 - file: /etc/keystone/keystone.conf
474{%- else %}
475 file.exists:
Vasyl Saienkoeaf4fc42017-12-12 11:49:43 +0200476 - name: {{ server.database.ssl.get('cacert_file', server.cacert_file) }}
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300477 - require_in:
478 - file: /etc/keystone/keystone.conf
Kirill Bespalov00984452017-08-01 17:44:11 +0300479{% endif %}
480{% endif %}
481
482
483{%- if server.notification and server.message_queue.get('ssl',{}).get('enabled', False) %}
Kirill Bespalov33272a82017-11-15 13:40:26 +0300484rabbitmq_ca_keystone_server:
Kirill Bespalov00984452017-08-01 17:44:11 +0300485{%- if server.message_queue.ssl.cacert is defined %}
486 file.managed:
487 - name: {{ server.message_queue.ssl.cacert_file }}
488 - contents_pillar: keystone:server:message_queue:ssl:cacert
489 - mode: 0444
490 - makedirs: true
491{%- else %}
492 file.exists:
Vasyl Saienkoeaf4fc42017-12-12 11:49:43 +0200493 - name: {{ server.message_queue.ssl.get('cacert_file', server.cacert_file) }}
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300494{%- endif %}
495{%- endif %}
496
Filip Pytloun943d6882015-10-06 16:28:32 +0200497{%- endif %}