blob: 7ce971acc2a3ad0c9cabf3b6ca945d85a60532d8 [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
Benjamin Drung5fe80412018-02-14 23:55:54 +0100154{%- for name, rule in server.get('policy', {}).items() %}
Adam Tenglerb1ebaca2017-05-04 21:06:08 +0000155
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
Benjamin Drung5fe80412018-02-14 23:55:54 +0100191{%- for domain_name, domain in server.domain.items() %}
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
Vasyl Saienko75826ac2018-04-23 11:15:50 +0300219{#- can't use RC file here as identity endpoint may not be present in keystone #}
220{#- as we will add it later in keystone.client state. Use endpoint override here. #}
221{#- will be fixed when switched to keystone bootstrap. #}
222{#- TODO: move domain creation to keystone.client state. #}
Filip Pytloun5b503852016-01-12 14:02:07 +0100223keystone_domain_{{ domain_name }}:
224 cmd.run:
Vasyl Saienko75826ac2018-04-23 11:15:50 +0300225 - name: openstack --os-identity-api-version 3
226 --os-endpoint {{ server.bind.get('private_protocol', 'http') }}://{{ server.bind.private_address }}:{{ server.bind.private_port }}/v3
227 --os-token {{ server.service_token }}
228 --os-auth-type admin_token
229 domain create --description "{{ domain.description }}" {{ domain_name }}
230 - unless: {% if grains.get('noservices') %}/bin/true{% else %}
231 openstack --os-identity-api-version 3
232 --os-endpoint {{ server.bind.get('private_protocol', 'http') }}://{{ server.bind.private_address }}:{{ server.bind.private_port }}/v3
233 --os-token {{ server.service_token }}
234 --os-auth-type admin_token
235 domain list | grep " {{ domain_name }}"{% endif %}
Dmitry Stremkovskiy0ad884b2017-07-27 14:51:11 +0300236 - shell: /bin/bash
Filip Pytloun5b503852016-01-12 14:02:07 +0100237 - require:
238 - file: /root/keystonercv3
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200239 - service: {{ keystone_service }}
Ales Komarekaabbda62016-03-15 08:38:35 +0100240
Filip Pytloun6b9ec2b2016-01-12 13:52:01 +0100241{%- endfor %}
242
243{%- endif %}
244
Filip Pytloun19620f72016-01-19 16:27:00 +0100245{%- if server.get('ldap', {}).get('tls', {}).get('cacert', False) %}
Ales Komarekaabbda62016-03-15 08:38:35 +0100246
Filip Pytloun19620f72016-01-19 16:27:00 +0100247keystone_ldap_default_cacert:
248 file.managed:
249 - name: {{ server.ldap.tls.cacertfile }}
250 - contents_pillar: keystone:server:ldap:tls:cacert
251 - require:
252 - pkg: keystone_packages
253 - watch_in:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200254 - service: {{ keystone_service }}
Ales Komarekaabbda62016-03-15 08:38:35 +0100255
Filip Pytloun19620f72016-01-19 16:27:00 +0100256{%- endif %}
257
Martin Polreichabe6a6b2017-06-02 16:56:56 +0200258{%- if server.service_name not in ['apache2', 'httpd'] %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200259keystone_service:
260 service.running:
261 - name: {{ server.service_name }}
262 - enable: True
Martin Polreich962dfdd2017-06-08 14:04:14 +0200263 {%- if grains.get('noservices') %}
264 - onlyif: /bin/false
265 {%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200266 - watch:
Kirill Bespalov00984452017-08-01 17:44:11 +0300267 {%- if server.notification and server.message_queue.get('ssl',{}).get('enabled', False) %}
Kirill Bespalov33272a82017-11-15 13:40:26 +0300268 - file: rabbitmq_ca_keystone_server
Kirill Bespalov00984452017-08-01 17:44:11 +0300269 {%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200270 - file: /etc/keystone/keystone.conf
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200271{%- endif %}
272
273{%- if grains.get('virtual_subtype', None) == "Docker" %}
274keystone_entrypoint:
275 file.managed:
276 - name: /entrypoint.sh
277 - template: jinja
278 - source: salt://keystone/files/entrypoint.sh
279 - mode: 755
280{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200281
282/root/keystonerc:
283 file.managed:
284 - source: salt://keystone/files/keystonerc
285 - template: jinja
286 - require:
287 - pkg: keystone_packages
288
289/root/keystonercv3:
290 file.managed:
291 - source: salt://keystone/files/keystonercv3
292 - template: jinja
293 - require:
294 - pkg: keystone_packages
295
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200296{%- if not grains.get('noservices', False) %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200297keystone_syncdb:
298 cmd.run:
Igor Pukha3aa8e202017-05-03 15:42:50 +0300299 - name: keystone-manage db_sync && sleep 1
Ruslan Usichenko64cd3542017-01-30 15:59:44 +0200300 - timeout: 120
Filip Pytloun943d6882015-10-06 16:28:32 +0200301 - require:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200302 - service: {{ keystone_service }}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200303{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200304
305{% if server.tokens.engine == 'fernet' %}
306
Jakub Pavlik143338c2016-02-16 18:57:54 +0100307keystone_fernet_keys:
Filip Pytloun943d6882015-10-06 16:28:32 +0200308 file.directory:
Jakub Pavlik143338c2016-02-16 18:57:54 +0100309 - name: {{ server.tokens.location }}
310 - mode: 750
Filip Pytloun943d6882015-10-06 16:28:32 +0200311 - user: keystone
312 - group: keystone
313 - require:
314 - pkg: keystone_packages
315 - require_in:
316 - service: keystone_fernet_setup
317
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200318{%- if not grains.get('noservices', False) %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200319keystone_fernet_setup:
320 cmd.run:
321 - name: keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone
322 - require:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200323 - service: {{ keystone_service }}
Jakub Pavlik143338c2016-02-16 18:57:54 +0100324 - file: keystone_fernet_keys
Andrey Shestakovd2563442017-06-15 17:08:46 +0300325{%- endif %}
Jakub Pavlikf61df542017-04-03 18:01:23 +0200326
Andrey Shestakovd2563442017-06-15 17:08:46 +0300327{% endif %}
328
Oleh Hryhorov284f2822017-10-26 10:58:10 +0300329{%- if server.version in ['newton', 'ocata', 'pike'] %}
Andrey Shestakovd2563442017-06-15 17:08:46 +0300330keystone_credential_keys:
331 file.directory:
332 - name: {{ server.credential.location }}
333 - mode: 750
334 - user: keystone
335 - group: keystone
336 - require:
337 - pkg: keystone_packages
338
339{%- if not grains.get('noservices', False) %}
340keystone_credential_setup:
Jakub Pavlikf61df542017-04-03 18:01:23 +0200341 cmd.run:
342 - name: keystone-manage credential_setup --keystone-user keystone --keystone-group keystone
343 - require:
Filip Pytloun2d5ff4a2017-05-19 12:00:59 +0200344 - service: {{ keystone_service }}
Andrey Shestakovd2563442017-06-15 17:08:46 +0300345 - file: keystone_credential_keys
Jakub Pavlikf61df542017-04-03 18:01:23 +0200346{%- endif %}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200347{%- endif %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200348
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200349{%- if not grains.get('noservices', False) %}
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200350
351{%- if not salt['pillar.get']('linux:system:repo:mirantis_openstack', False) %}
352
Filip Pytloun943d6882015-10-06 16:28:32 +0200353keystone_service_tenant:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300354 keystoneng.tenant_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200355 - name: {{ server.service_tenant }}
Andres Montalban06c35892016-09-23 12:24:38 -0300356 - connection_token: {{ server.service_token }}
357 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200358 - require:
359 - cmd: keystone_syncdb
360
361keystone_admin_tenant:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300362 keystoneng.tenant_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200363 - name: {{ server.admin_tenant }}
Andres Montalban06c35892016-09-23 12:24:38 -0300364 - connection_token: {{ server.service_token }}
365 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200366 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300367 - keystoneng: keystone_service_tenant
Filip Pytloun943d6882015-10-06 16:28:32 +0200368
369keystone_roles:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300370 keystoneng.role_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200371 - names: {{ server.roles }}
Andres Montalban06c35892016-09-23 12:24:38 -0300372 - connection_token: {{ server.service_token }}
373 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200374 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300375 - keystoneng: keystone_service_tenant
Filip Pytloun943d6882015-10-06 16:28:32 +0200376
Adam Tengler43c8a182017-09-08 09:54:31 +0000377{%- if not server.get('ldap', {}).get('read_only', False) %}
378
Filip Pytloun943d6882015-10-06 16:28:32 +0200379keystone_admin_user:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300380 keystoneng.user_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200381 - name: {{ server.admin_name }}
382 - password: {{ server.admin_password }}
383 - email: {{ server.admin_email }}
384 - tenant: {{ server.admin_tenant }}
385 - roles:
386 {{ server.admin_tenant }}:
387 - admin
Andres Montalban06c35892016-09-23 12:24:38 -0300388 - connection_token: {{ server.service_token }}
389 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200390 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300391 - keystoneng: keystone_admin_tenant
392 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200393
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200394{%- endif %}
395
Adam Tengler43c8a182017-09-08 09:54:31 +0000396{%- endif %}
397
Benjamin Drung5fe80412018-02-14 23:55:54 +0100398{%- for service_name, service in server.get('service', {}).items() %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200399
400keystone_{{ service_name }}_service:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300401 keystoneng.service_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200402 - name: {{ service_name }}
403 - service_type: {{ service.type }}
404 - description: {{ service.description }}
Andres Montalban06c35892016-09-23 12:24:38 -0300405 - connection_token: {{ server.service_token }}
406 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200407 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300408 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200409
Petr Michalec685a2192017-03-06 14:58:01 +0100410keystone_{{ service_name }}_{{ service.get('region', 'RegionOne') }}_endpoint:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300411 keystoneng.endpoint_present:
Ales Komarekaabbda62016-03-15 08:38:35 +0100412 - name: {{ service.get('service', service_name) }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200413 - publicurl: '{{ service.bind.get('public_protocol', 'http') }}://{{ service.bind.public_address }}:{{ service.bind.public_port }}{{ service.bind.public_path }}'
414 - internalurl: '{{ service.bind.get('internal_protocol', 'http') }}://{{ service.bind.internal_address }}:{{ service.bind.internal_port }}{{ service.bind.internal_path }}'
415 - adminurl: '{{ service.bind.get('admin_protocol', 'http') }}://{{ service.bind.admin_address }}:{{ service.bind.admin_port }}{{ service.bind.admin_path }}'
416 - region: {{ service.get('region', 'RegionOne') }}
Andres Montalban06c35892016-09-23 12:24:38 -0300417 - connection_token: {{ server.service_token }}
418 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200419 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300420 - keystoneng: keystone_{{ service_name }}_service
Filip Pytloun943d6882015-10-06 16:28:32 +0200421
422{% if service.user is defined %}
423
424keystone_user_{{ service.user.name }}:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300425 keystoneng.user_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200426 - name: {{ service.user.name }}
427 - password: {{ service.user.password }}
428 - email: {{ server.admin_email }}
429 - tenant: {{ server.service_tenant }}
430 - roles:
431 {{ server.service_tenant }}:
432 - admin
Andres Montalban06c35892016-09-23 12:24:38 -0300433 - connection_token: {{ server.service_token }}
434 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200435 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300436 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200437
438{% endif %}
439
Ales Komarek95ceb4b2016-10-20 17:28:21 +0200440{%- endfor %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200441
Benjamin Drung5fe80412018-02-14 23:55:54 +0100442{%- for tenant_name, tenant in server.get('tenant', {}).items() %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200443
444keystone_tenant_{{ tenant_name }}:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300445 keystoneng.tenant_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200446 - name: {{ tenant_name }}
Andres Montalban06c35892016-09-23 12:24:38 -0300447 - connection_token: {{ server.service_token }}
448 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200449 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300450 - keystoneng: keystone_roles
Filip Pytloun943d6882015-10-06 16:28:32 +0200451
Benjamin Drung5fe80412018-02-14 23:55:54 +0100452{%- for user_name, user in tenant.get('user', {}).items() %}
Filip Pytloun943d6882015-10-06 16:28:32 +0200453
454keystone_user_{{ user_name }}:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300455 keystoneng.user_present:
Filip Pytloun943d6882015-10-06 16:28:32 +0200456 - name: {{ user_name }}
457 - password: {{ user.password }}
458 - email: {{ user.get('email', 'root@localhost') }}
459 - tenant: {{ tenant_name }}
460 - roles:
461 {{ tenant_name }}:
462 {%- if user.get('roles', False) %}
463 {{ user.roles }}
464 {%- else %}
465 - Member
466 {%- endif %}
Andres Montalban06c35892016-09-23 12:24:38 -0300467 - connection_token: {{ server.service_token }}
468 - connection_endpoint: 'http://{{ server.bind.address }}:{{ server.bind.private_port }}/v2.0'
Filip Pytloun943d6882015-10-06 16:28:32 +0200469 - require:
Oleg Iurchenko5b1e5322017-10-20 00:29:20 +0300470 - keystoneng: keystone_tenant_{{ tenant_name }}
Filip Pytloun943d6882015-10-06 16:28:32 +0200471
472{%- endfor %}
473
474{%- endfor %}
Filip Pytlounb96a0a42016-05-25 11:36:44 +0200475{%- endif %} {# end noservices #}
Filip Pytloun943d6882015-10-06 16:28:32 +0200476
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300477{%- if server.database.get('ssl',{}).get('enabled',False) %}
Kirill Bespalov33272a82017-11-15 13:40:26 +0300478mysql_ca_keystone_server:
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300479{%- if server.database.ssl.cacert is defined %}
480 file.managed:
481 - name: {{ server.database.ssl.cacert_file }}
482 - contents_pillar: keystone:server:database:ssl:cacert
483 - mode: 0444
484 - makedirs: true
485 - require_in:
486 - file: /etc/keystone/keystone.conf
487{%- else %}
488 file.exists:
Vasyl Saienkoeaf4fc42017-12-12 11:49:43 +0200489 - name: {{ server.database.ssl.get('cacert_file', server.cacert_file) }}
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300490 - require_in:
491 - file: /etc/keystone/keystone.conf
Kirill Bespalov00984452017-08-01 17:44:11 +0300492{% endif %}
493{% endif %}
494
495
496{%- if server.notification and server.message_queue.get('ssl',{}).get('enabled', False) %}
Kirill Bespalov33272a82017-11-15 13:40:26 +0300497rabbitmq_ca_keystone_server:
Kirill Bespalov00984452017-08-01 17:44:11 +0300498{%- if server.message_queue.ssl.cacert is defined %}
499 file.managed:
500 - name: {{ server.message_queue.ssl.cacert_file }}
501 - contents_pillar: keystone:server:message_queue:ssl:cacert
502 - mode: 0444
503 - makedirs: true
504{%- else %}
505 file.exists:
Vasyl Saienkoeaf4fc42017-12-12 11:49:43 +0200506 - name: {{ server.message_queue.ssl.get('cacert_file', server.cacert_file) }}
Kirill Bespalov357fc3c2017-08-30 14:18:19 +0300507{%- endif %}
508{%- endif %}
509
Filip Pytloun943d6882015-10-06 16:28:32 +0200510{%- endif %}