prometheus-formula/prometheus/config/environ.sls
BlueWolf 076869a8cd fix: added handle for alternative argument opts header
Centos and oraclelinux repositories for prometheus include bespoke headers
in the environment files (e.g. Debian: ARGS=, Centos: PROMETHEUS_OPTS=
ALERTMANAGER_OPTS=). This has been added as a default pillar with osmap
variances.
Additionally archlinux repo install was failing so added basic support -
an issue still remains for the prometheus app itself due to the service
file included in the arch repo hardcoding some config options - resulting
in the possibility to duplicate arguments resulting in a service error.
The prometheus service currently does not start due to permissions not being
applied to a data folder. The added config.storage begins to solve this and
ensures alignment on all platforms but would result in a duplicate config
entry as above. Prometheus on arch therefore needs more work but the exporter
installs now work.

Resolves: #59
2021-06-30 05:16:56 +01:00

59 lines
2.3 KiB
Plaintext

# -*- coding: utf-8 -*-
# vim: ft=sls
{%- set tplroot = tpldir.split('/')[0] %}
{%- from tplroot ~ "/map.jinja" import prometheus as p with context %}
{%- from tplroot ~ "/libtofs.jinja" import files_switch with context %}
{%- from tplroot ~ "/files/macros.jinja" import concat_args %}
{%- set sls_archive_install = tplroot ~ '.archive.install' %}
{%- set sls_package_install = tplroot ~ '.package.install' %}
{%- set sls_service_running = tplroot ~ '.service.running' %}
include:
- {{ sls_archive_install if p.pkg.use_upstream_archive else sls_package_install }}
- {{ sls_service_running }}
{%- for name in p.wanted.component %}
{%- if 'environ' in p.pkg.component[name] and 'args' in p.pkg.component[name]['environ'] %}
{%- set args = p.pkg.component[name]['environ']['args'] %}
{%- set arg_name = p.pkg.component[name]['environ']['environ_arg_name'] %}
{%- if 'environ_file' in p.pkg.component[name] and p.pkg.component[name]['environ_file'] %}
prometheus-config-install-{{ name }}-environ_file:
file.managed:
- name: {{ p.pkg.component[name]['environ_file'] }}
- source: {{ files_switch(['environ.sh.jinja'],
lookup='prometheus-config-install-' ~ name ~ '-environ_file'
)
}}
- makedirs: True
- template: jinja
{%- if grains.os != 'Windows' %}
- mode: 640
- user: {{ p.identity.rootuser }}
- group: {{ p.identity.rootgroup }}
{%- endif %}
- context:
args: {{ concat_args(args) }}
arg_name: {{ arg_name }}
- watch_in:
- service: prometheus-service-running-{{ name }}
- require:
- sls: {{ sls_archive_install if p.pkg.use_upstream_archive else sls_package_install }}
{%- if grains.os_family == 'FreeBSD' %}
prometheus-config-environ-{{ name }}-all:
sysrc.managed:
- name: {{ name }}_environ
# service prometheus restart tends to hang on FreeBSD
# https://github.com/saltstack/salt/issues/44848#issuecomment-487016414
- value: "{{ concat_args(p.pkg.component[name]['environ']) }} >/dev/null 2>&1"
- watch_in:
- service: prometheus-service-running-{{ name }}
{%- endif %}
{%- endif %}
{%- endif %}
{%- endfor %}