87 lines
2.8 KiB
Plaintext
87 lines
2.8 KiB
Plaintext
|
# -*- coding: utf-8 -*-
|
||
|
# vim: ft=sls
|
||
|
|
||
|
{#- Get the `tplroot` from `tpldir` #}
|
||
|
{%- set tplroot = tpldir.split('/')[0] %}
|
||
|
{%- from tplroot ~ "/map.jinja" import prometheus with context %}
|
||
|
{%- from tplroot ~ "/map.jinja" import concat_args %}
|
||
|
{%- set sls_config_install = tplroot ~ '.config' %}
|
||
|
{%- set sls_service_install = tplroot ~ '.service' %}
|
||
|
|
||
|
include:
|
||
|
- {{ sls_config_install }}
|
||
|
- {{ sls_service_install }}
|
||
|
|
||
|
{%- for name in prometheus.wanted %}
|
||
|
{%- if name in prometheus.config or name in prometheus.service %}
|
||
|
{%- set args = {} %}
|
||
|
{%- if 'args' in prometheus.service[name] %}
|
||
|
{%- set args = prometheus.service[name]['args'] or {} %}
|
||
|
{%- endif %}
|
||
|
{%- if args and 'storage.tsdb.path' in args.keys() %}
|
||
|
|
||
|
prometheus-config-args-{{ name }}-data-dir:
|
||
|
file.directory:
|
||
|
- name: {{ args['storage.tsdb.path'] }}
|
||
|
- owner: {{ name }}
|
||
|
- group: {{ name }}
|
||
|
- makedirs: True
|
||
|
- watch_in:
|
||
|
- service: prometheus-service-running-{{ name }}-service-running
|
||
|
|
||
|
{%- endif %}
|
||
|
{%- if args and grains.os_family == 'FreeBSD' %}
|
||
|
{%- if 'web.listen-address' in args.keys() %}
|
||
|
|
||
|
prometheus-config-args-args-web-listen-address:
|
||
|
sysrc.managed:
|
||
|
- name: {{ name }}_listen_address
|
||
|
- value: {{ args.pop('web.listen-address') }}
|
||
|
- watch_in:
|
||
|
- service: prometheus-service-running-{{ name }}-service-running
|
||
|
|
||
|
{%- endif %}
|
||
|
{%- if 'collector.textfile.directory' in args.keys() %}
|
||
|
|
||
|
prometheus-config-args-{{ name }}--collector-textfile-directory:
|
||
|
sysrc.managed:
|
||
|
- name: {{ name }}_textfile_dir
|
||
|
- value: {{ args.pop('collector.textfile.directory') }}
|
||
|
- watch_in:
|
||
|
- service: prometheus-service-running-{{ name }}-service-running
|
||
|
|
||
|
{%- endif %}
|
||
|
{%- if 'storage.tsdb.path' in args.keys() %}
|
||
|
|
||
|
prometheus-config-args-{{ name }}-{{ key }}:
|
||
|
sysrc.managed:
|
||
|
- name: {{ name }}_data_dir
|
||
|
- value: {{ args.pop('storage.tsdb.path') }}
|
||
|
- watch_in:
|
||
|
- service: prometheus-service-running-{{ name }}-service-running
|
||
|
|
||
|
{%- endif %}
|
||
|
|
||
|
prometheus-config-args-{{ name }}-all:
|
||
|
sysrc.managed:
|
||
|
- name: {{ name }}_args
|
||
|
# service prometheus restart tended to hang on FreeBSD
|
||
|
# https://github.com/saltstack/salt/issues/44848#issuecomment-487016414
|
||
|
- value: "{{ concat_args(args) }} >/dev/null 2>&1"
|
||
|
- watch_in:
|
||
|
- service: prometheus-service-running-{{ name }}-service-running
|
||
|
|
||
|
{%- elif grains.os_family != 'FreeBSD' %}
|
||
|
|
||
|
prometheus-config-args-{{ name }}-file-managed:
|
||
|
file.managed:
|
||
|
- name: {{ prometheus.dir.args }}/{{ name }}.sh
|
||
|
- contents: |
|
||
|
ARGS="{{ concat_args(args) }}"
|
||
|
- watch_in:
|
||
|
- service: prometheus-service-running-{{ name }}-service-running
|
||
|
|
||
|
{%- endif %}
|
||
|
{%- endif %}
|
||
|
{%- endfor %}
|