blob: 72d92a00bb62ed3fb2f18b7f9bce92a8f4fd58ad [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
64 - watch_in:
65 - service: glance_services
66
67glance_services:
68 service.running:
69 - enable: true
70 - names: {{ server.services }}
71 - watch:
72 - file: /etc/glance/glance-api.conf
73 - file: /etc/glance/glance-registry.conf
74
75glance_install_database:
76 cmd.run:
77 - name: glance-manage db_sync
78 - require:
79 - service: glance_services
80
Adam Tenglerb6280ba2016-04-26 18:36:56 +020081/var/lib/glance/images:
Filip Pytlound681ae22015-10-06 16:28:31 +020082 file.directory:
Filip Pytlound681ae22015-10-06 16:28:31 +020083 - mode: 755
Adam Tenglerb6280ba2016-04-26 18:36:56 +020084 - user: glance
85 - group: glance
Filip Pytlound681ae22015-10-06 16:28:31 +020086 - require:
Adam Tenglerb6280ba2016-04-26 18:36:56 +020087 - pkg: glance_packages
Filip Pytlound681ae22015-10-06 16:28:31 +020088
89{%- for image in server.get('images', []) %}
90
91glance_download_{{ image.name }}:
92 cmd.run:
93 - name: wget {{ image.source }}
94 - unless: "test -e {{ image.file }}"
95 - cwd: /srv/glance
96 - require:
97 - file: /srv/glance
98
99glance_install_{{ image.name }}:
100 cmd.wait:
101 - name: source /root/keystonerc; glance image-create --name '{{ image.name }}' --is-public {{ image.public }} --container-format bare --disk-format {{ image.format }} < {{ image.file }}
102 - cwd: /srv/glance
103 - require:
104 - service: glance_services
105 - watch:
106 - cmd: glance_download_{{ image.name }}
107
108{%- endfor %}
109
110{%- for image_name, image in server.get('image', {}).iteritems() %}
111
112glance_download_{{ image_name }}:
113 cmd.run:
114 - name: wget {{ image.source }}
115 - unless: "test -e {{ image.file }}"
116 - cwd: /srv/glance
117 - require:
118 - file: /srv/glance
119
120glance_install_image_{{ image_name }}:
121 cmd.run:
122 - 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 }}
123 - require:
124 - service: glance_services
125 - cmd: glance_download_{{ image_name }}
126 - unless:
127 - cmd: source /root/keystonerc && glance image-list | grep {{ image_name }}
128
129{%- endfor %}
130
131{%- if server.policy is defined %}
132
133{%- for key, policy in server.policy.iteritems() %}
134
135policy_{{ key }}:
136 file.replace:
137 - name: /etc/glance/policy.json
138 - pattern: "[\"']{{ key }}[\"']:.*"
139 {# unfortunatately there's no jsonify filter so we have to do magic :-( #}
140 - repl: '"{{ key }}": {% if policy is iterable %}[{%- for rule in policy %}"{{ rule }}"{% if not loop.last %}, {% endif %}{%- endfor %}]{%- else %}"{{ policy }}"{%- endif %},'
141
142{%- endfor %}
143
144{%- endif %}
145
146{%- endif %}