Skip to content

Commit b9b2e42

Browse files
committed
feat(suse): support packaged installations
- add all components available in the default openSUSE Leap (OSS) repository to osfamilymap - introduce global manage_user_group toggle to prevent the formula from changing users and groups managed by system packages Signed-off-by: Georg Pfuetzenreuter <mail@georg-pfuetzenreuter.net>
1 parent d5cfeb0 commit b9b2e42

File tree

8 files changed

+85
-2
lines changed

8 files changed

+85
-2
lines changed

prometheus/config/file.sls

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,19 @@ prometheus-config-file-{{ name }}-file-managed:
4040
- template: jinja
4141
{%- if grains.os != 'Windows' %}
4242
- mode: 644
43+
{%- if p.manage_user_group %}
4344
- user: {{ name }}
4445
- group: {{ name }}
4546
{%- endif %}
47+
{%- endif %}
4648
- context:
4749
config: {{ p.pkg.component[name]['config']|json }}
4850
- require:
4951
- file: prometheus-config-file-etc-file-directory
52+
{%- if p.manage_user_group %}
5053
- user: prometheus-config-users-install-{{ name }}-user-present
5154
- group: prometheus-config-users-install-{{ name }}-group-present
55+
{%- endif %}
5256
- watch_in:
5357
- service: prometheus-service-running-{{ name }}
5458
@@ -71,15 +75,19 @@ prometheus-config-file-{{ ef }}-file-managed:
7175
- template: jinja
7276
{%- if grains.os != 'Windows' %}
7377
- mode: 644
78+
{%- if p.manage_user_group %}
7479
- user: {{ component }}
7580
- group: {{ component }}
7681
{%- endif %}
82+
{%- endif %}
7783
- context:
7884
config: {{ p.extra_files[ef]['config'] }}
7985
- require:
8086
- file: prometheus-config-file-etc-file-directory
87+
{%- if p.manage_user_group %}
8188
- user: prometheus-config-users-install-{{ component }}-user-present
8289
- group: prometheus-config-users-install-{{ component }}-group-present
90+
{%- endif %}
8391
- watch_in:
8492
- service: prometheus-service-running-{{ component }}
8593

prometheus/config/storage.sls

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ prometheus-service-args-{{ name }}-data-dir:
2424
- makedirs: True
2525
- watch_in:
2626
- service: prometheus-service-running-{{ name }}
27+
{%- if p.manage_user_group %}
2728
- require:
2829
- user: prometheus-config-users-install-{{ name }}-user-present
2930
- group: prometheus-config-users-install-{{ name }}-group-present
31+
{%- endif %}
3032
3133
{%- endif %}
3234
{% endif %}

prometheus/config/users.sls

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
{%- set tplroot = tpldir.split('/')[0] %}
55
{%- from tplroot ~ "/map.jinja" import prometheus as p with context %}
66
7+
{%- if p.manage_user_group or p.pkg.use_upstream_archive %}
78
{%- for name in p.wanted.component %}
89
910
prometheus-config-users-install-{{ name }}-group-present:
@@ -29,3 +30,4 @@ prometheus-config-users-install-{{ name }}-user-present:
2930
{%- endif %}
3031
3132
{%- endfor %}
33+
{%- endif %}

prometheus/defaults.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ prometheus:
2323
tmp: /tmp/prometheus
2424
var: /var/lib/prometheus
2525

26+
manage_user_group: true
27+
2628
pkg:
2729
uri: https://github.com/prometheus
2830
use_upstream_repo: false

prometheus/exporters/node_exporter/textfile_collectors/init.sls

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,11 @@ prometheus-exporters-{{ name }}-collector-textfile-dir:
2222
- group: {{ name }}
2323
{%- endif %}
2424
- makedirs: True
25+
{%- if p.manage_user_group %}
2526
- require:
2627
- user: prometheus-config-users-install-{{ name }}-user-present
2728
- group: prometheus-config-users-install-{{ name }}-group-present
29+
{%- endif %}
2830
{%- endif %}
2931
3032
{%- for k, v in p.get('exporters', {}).get(name, {}).get('textfile_collectors', {}).items() %}

prometheus/osfamilymap.yaml

Lines changed: 60 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,66 @@ RedHat:
219219
sslcacert: /etc/pki/tls/certs/ca-bundle.crt
220220
metadata_expire: 300
221221

222-
Suse: {}
222+
Suse:
223+
manage_user_group: false
224+
pkg:
225+
use_upstream_repo: false
226+
use_upstream_package: false
227+
use_upstream_archive: false
228+
component:
229+
alertmanager:
230+
name: golang-github-prometheus-alertmanager
231+
service:
232+
name: prometheus-alertmanager
233+
environ_file: /etc/sysconfig/prometheus-alertmanager
234+
args:
235+
config.file: /etc/prometheus/alertmanager.yml
236+
config_file: /etc/prometheus/alertmanager.yml
237+
prometheus:
238+
name: golang-github-prometheus-prometheus
239+
service:
240+
name: prometheus
241+
environ_file: /etc/sysconfig/prometheus
242+
environ:
243+
environ_arg_name: ARGS
244+
config_file: /etc/prometheus/prometheus.yml
245+
blackbox_exporter:
246+
name: prometheus-blackbox_exporter
247+
config_file: /etc/prometheus/blackbox.yml
248+
service:
249+
name: prometheus-blackbox_exporter
250+
hacluster_exporter:
251+
name: prometheus-ha_cluster_exporter
252+
environ_file: /etc/sysconfig/prometheus-ha_cluster_exporter
253+
environ:
254+
environ_arg_name: ARGS
255+
service:
256+
name: prometheus-ha_cluster_exporter
257+
node_exporter:
258+
name: golang-github-prometheus-node_exporter
259+
service:
260+
name: prometheus-node_exporter
261+
environ_file: /etc/sysconfig/prometheus-node_exporter
262+
environ:
263+
environ_arg_name: ARGS
264+
postgres_exporter:
265+
name: prometheus-postgres_exporter
266+
service:
267+
name: prometheus-postgres_exporter
268+
environ_file: /etc/sysconfig/prometheus-postgres_exporter
269+
environ:
270+
environ_arg_name: POSTGRES_EXPORTER_PARAMS
271+
saptune_exporter:
272+
name: prometheus-saptune_exporter
273+
service:
274+
name: prometheus-saptune_exporter
275+
webhook_snmp:
276+
name: prometheus-webhook-snmp
277+
service:
278+
name: prometheus-webhook-snmp
279+
environ_file: /etc/default/prometheus-webhook-snmp
280+
environ:
281+
environ_arg_name: PROMETHEUS_WEBHOOK_SNMP_OPTIONS
223282

224283
Gentoo:
225284
pkg:

prometheus/service/args/install.sls

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,11 @@ prometheus-service-args-{{ name }}-data-dir:
3030
- makedirs: True
3131
- watch_in:
3232
- service: prometheus-service-running-{{ name }}
33+
{%- if p.manage_user_group %}
3334
- require:
3435
- user: prometheus-config-users-install-{{ name }}-user-present
3536
- group: prometheus-config-users-install-{{ name }}-group-present
37+
{%- endif %}
3638
3739
{%- endif %}
3840
{%- if grains.os_family == 'FreeBSD' %}

test/salt/pillar/repo.sls

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ prometheus:
1313
- alertmanager
1414
- node_exporter
1515
- blackbox_exporter
16+
{%- if grains.os == 'SUSE' %}
17+
- hacluster_exporter
18+
- postgres_exporter
19+
- saptune_exporter
20+
- webhook_snmp
21+
{%- endif %}
1622

1723
exporters:
1824
node_exporter:
@@ -31,7 +37,7 @@ prometheus:
3137

3238
pkg:
3339
# yamllint disable-line rule:braces rule:commas
34-
use_upstream_repo: {{ false if grains.os_family|lower in ('debian',) else true }}
40+
use_upstream_repo: {{ false if grains.os_family|lower in ('debian','suse',) else true }}
3541
use_upstream_archive: false
3642

3743
clientlibs:

0 commit comments

Comments
 (0)