blob: 63d0cbbb272197b85d11f980067ac49181eedfd8 [file] [log] [blame]
Filip Pytlound681ae22015-10-06 16:28:31 +02001{%- from "glance/map.jinja" import server with context %}
2{%- if server.enabled %}
3
4glance_packages:
5 pkg.installed:
6 - names: {{ server.pkgs }}
7
8{%- if not salt['user.info']('glance') %}
9glance_user:
10 user.present:
11 - name: glance
12 - home: /var/lib/glance
13 - uid: 302
14 - gid: 302
15 - shell: /bin/false
16 - system: True
17 - require_in:
18 - pkg: glance_packages
19
20glance_group:
21 group.present:
22 - name: glance
23 - gid: 302
24 - system: True
25 - require_in:
26 - pkg: glance_packages
27 - user: glance_user
28{%- endif %}
29
30/etc/glance/glance-cache.conf:
31 file.managed:
32 - source: salt://glance/files/{{ server.version }}/glance-cache.conf.{{ grains.os_family }}
33 - template: jinja
34 - require:
35 - pkg: glance_packages
36
37/etc/glance/glance-registry.conf:
38 file.managed:
39 - source: salt://glance/files/{{ server.version }}/glance-registry.conf.{{ grains.os_family }}
40 - template: jinja
41 - require:
42 - pkg: glance_packages
43
44/etc/glance/glance-scrubber.conf:
45 file.managed:
46 - source: salt://glance/files/{{ server.version }}/glance-scrubber.conf.{{ grains.os_family }}
47 - template: jinja
48 - require:
49 - pkg: glance_packages
50
51/etc/glance/glance-api.conf:
52 file.managed:
53 - source: salt://glance/files/{{ server.version }}/glance-api.conf.{{ grains.os_family }}
54 - template: jinja
55 - require:
56 - pkg: glance_packages
57
58/etc/glance/glance-api-paste.ini:
59 file.managed:
60 - source: salt://glance/files/{{ server.version }}/glance-api-paste.ini
61 - template: jinja
62 - require:
63 - pkg: glance_packages
Jakub Pavlik7634ad92016-05-24 23:25:25 +020064
Jakub Pavlikf55a3ed2017-04-11 16:13:01 +020065{%- if server.version == 'newton' or server.version == 'ocata' %}
Jakub Pavlik0dc50b72017-04-03 21:34:33 +020066
Jakub Pavlik882f8482017-04-06 16:38:35 +020067glance_glare_package:
68 pkg.installed:
69 - name: glance-glare
70
Jakub Pavlik0dc50b72017-04-03 21:34:33 +020071/etc/glance/glance-glare-paste.ini:
72 file.managed:
73 - source: salt://glance/files/{{ server.version }}/glance-glare-paste.ini
74 - template: jinja
75 - require:
76 - pkg: glance_packages
Jakub Pavlik882f8482017-04-06 16:38:35 +020077 - pkg: glance_glare_package
Jakub Pavlik0dc50b72017-04-03 21:34:33 +020078
79/etc/glance/glance-glare.conf:
80 file.managed:
81 - source: salt://glance/files/{{ server.version }}/glance-glare.conf.{{ grains.os_family }}
82 - template: jinja
83 - require:
84 - pkg: glance_packages
Jakub Pavlik882f8482017-04-06 16:38:35 +020085 - pkg: glance_glare_package
Jakub Pavlik0dc50b72017-04-03 21:34:33 +020086
87{%- if not grains.get('noservices', False) %}
88
89glance_glare_service:
90 service.running:
91 - enable: true
92 - name: glance-glare
93 - require_in:
94 - cmd: glance_install_database
Anton Arefiev13907232017-05-17 16:44:53 +030095 - cmd: glance_load_metadatafs
Jakub Pavlik0dc50b72017-04-03 21:34:33 +020096 - watch:
97 - file: /etc/glance/glance-glare.conf
98
99{%- endif %}
100{%- endif %}
101
Michel Nederlof3a867812017-05-15 09:46:11 +0200102{% if server.storage.get('swift', {}).get('store', {}).get('references', {}) %}
103/etc/glance/swift-stores.conf:
104 file.managed:
105 - source: salt://glance/files/_backends/_swift.conf
106 - template: jinja
107 - require:
108 - pkg: glance_packages
109 - watch_in:
110 - service: glance_services
111{% endif %}
112
Jakub Pavlik7634ad92016-05-24 23:25:25 +0200113{%- if not grains.get('noservices', False) %}
Filip Pytlound681ae22015-10-06 16:28:31 +0200114
115glance_services:
116 service.running:
117 - enable: true
118 - names: {{ server.services }}
119 - watch:
120 - file: /etc/glance/glance-api.conf
121 - file: /etc/glance/glance-registry.conf
Jakub Pavlik7634ad92016-05-24 23:25:25 +0200122 - file: /etc/glance/glance-api-paste.ini
Filip Pytlound681ae22015-10-06 16:28:31 +0200123
124glance_install_database:
125 cmd.run:
126 - name: glance-manage db_sync
127 - require:
128 - service: glance_services
129
Anton Arefiev13907232017-05-17 16:44:53 +0300130glance_load_metadatafs:
131 cmd.run:
132 - name: glance-manage db_load_metadefs
133 - require:
134 - cmd: glance_install_database
135
mnederlofad6d6242017-03-30 15:31:15 +0200136{%- if server.get('image_cache', {}).get('enabled', False) %}
137glance_cron_glance-cache-pruner:
138 cron.present:
139 - name: glance-cache-pruner
140 - user: glance
141 - special: '@daily'
142 - require:
143 - service: glance_services
144
145glance_cron_glance-cache-cleaner:
146 cron.present:
147 - name: glance-cache-cleaner
148 - user: glance
149 - minute: 30
150 - hour: 5
151 - daymonth: '*/2'
152 - require:
153 - service: glance_services
154
155{%- endif %}
156
Jakub Pavlik7634ad92016-05-24 23:25:25 +0200157{%- endif %}
158
159{%- if grains.get('virtual_subtype', None) == "Docker" %}
160
161glance_entrypoint:
162 file.managed:
163 - name: /entrypoint.sh
164 - template: jinja
165 - source: salt://glance/files/entrypoint.sh
166 - mode: 755
167
168{%- endif %}
169
Adam Tenglerb6280ba2016-04-26 18:36:56 +0200170/var/lib/glance/images:
Filip Pytlound681ae22015-10-06 16:28:31 +0200171 file.directory:
Filip Pytlound681ae22015-10-06 16:28:31 +0200172 - mode: 755
Adam Tenglerb6280ba2016-04-26 18:36:56 +0200173 - user: glance
174 - group: glance
Filip Pytlound681ae22015-10-06 16:28:31 +0200175 - require:
Adam Tenglerb6280ba2016-04-26 18:36:56 +0200176 - pkg: glance_packages
Filip Pytlound681ae22015-10-06 16:28:31 +0200177
178{%- for image in server.get('images', []) %}
179
180glance_download_{{ image.name }}:
181 cmd.run:
182 - name: wget {{ image.source }}
183 - unless: "test -e {{ image.file }}"
184 - cwd: /srv/glance
185 - require:
186 - file: /srv/glance
187
188glance_install_{{ image.name }}:
189 cmd.wait:
190 - name: source /root/keystonerc; glance image-create --name '{{ image.name }}' --is-public {{ image.public }} --container-format bare --disk-format {{ image.format }} < {{ image.file }}
191 - cwd: /srv/glance
192 - require:
193 - service: glance_services
194 - watch:
195 - cmd: glance_download_{{ image.name }}
196
197{%- endfor %}
198
199{%- for image_name, image in server.get('image', {}).iteritems() %}
200
201glance_download_{{ image_name }}:
202 cmd.run:
203 - name: wget {{ image.source }}
204 - unless: "test -e {{ image.file }}"
205 - cwd: /srv/glance
206 - require:
207 - file: /srv/glance
208
209glance_install_image_{{ image_name }}:
210 cmd.run:
211 - name: source /root/keystonerc; glance image-create --name '{{ image_name }}' --is-public {{ image.public }} --container-format bare --disk-format {{ image.format }} < /srv/glance/{{ image.file }}
212 - require:
213 - service: glance_services
214 - cmd: glance_download_{{ image_name }}
215 - unless:
216 - cmd: source /root/keystonerc && glance image-list | grep {{ image_name }}
217
218{%- endfor %}
219
Dmitry Ukov0a228ad2017-05-15 13:35:43 +0400220{%- for name, rule in server.get('policy', {}).iteritems() %}
Filip Pytlound681ae22015-10-06 16:28:31 +0200221
Dmitry Ukov0a228ad2017-05-15 13:35:43 +0400222{%- if rule != None %}
223rule_{{ name }}_present:
224 keystone_policy.rule_present:
225 - path: /etc/glance/policy.json
226 - name: {{ name }}
227 - rule: {{ rule }}
228 - require:
229 - pkg: glance_packages
Filip Pytlound681ae22015-10-06 16:28:31 +0200230
Dmitry Ukov0a228ad2017-05-15 13:35:43 +0400231{%- else %}
Filip Pytlound681ae22015-10-06 16:28:31 +0200232
Dmitry Ukov0a228ad2017-05-15 13:35:43 +0400233rule_{{ name }}_absent:
234 keystone_policy.rule_absent:
235 - path: /etc/glance/policy.json
236 - name: {{ name }}
237 - require:
238 - pkg: glance_packages
Filip Pytlound681ae22015-10-06 16:28:31 +0200239
240{%- endif %}
241
Dmitry Ukov0a228ad2017-05-15 13:35:43 +0400242{%- endfor %}
243
Filip Pytlound681ae22015-10-06 16:28:31 +0200244{%- endif %}