{% from "prometheus/map.jinja" import prometheus with context %} include: - prometheus.user alertmanager_tarball: archive.extracted: - name: {{ prometheus.alertmanager.install_dir }} - source: {{ prometheus.alertmanager.source }} - source_hash: {{ prometheus.alertmanager.source_hash }} - archive_format: tar - if_missing: {{ prometheus.alertmanager.version_path }} {# alertmanager_bin_link: file.symlink: - name: /usr/bin/alertmanager - target: {{ prometheus.alertmanager.version_path }}/alertmanager - require: - archive: alertmanager_tarball #} alertmanager_config: file.serialize: - name: {{ prometheus.alertmanager.args.config_file }} - user: {{ prometheus.user }} - group: {{ prometheus.group }} - dataset_pillar: prometheus:alertmanager:config {# alertmanager_config: file.managed: - name: {{ prometheus.alertmanager.args.config_file }} - source: salt://prometheus/files/config.jinja - template: jinja - user: {{ prometheus.user }} - group: {{ prometheus.group }} - makedirs: True - defaults: data: {{ prometheus.alertmanager.config }} #} alertmanager_defaults: file.managed: - name: /etc/default/alertmanager - source: salt://prometheus/files/default-alertmanager.jinja - template: jinja - defaults: config_file: {{ prometheus.alertmanager.args.config_file }} storage_path: {{ prometheus.alertmanager.args.storage.path }} alertmanager_storage_path: file.directory: - name: {{ prometheus.alertmanager.args.storage.path }} - user: {{ prometheus.user }} - group: {{ prometheus.group }} - makedirs: True - watch: - file: alertmanager_defaults alertmanager_service_unit: file.managed: {%- if grains.get('init') == 'systemd' %} - name: /etc/systemd/system/alertmanager.service {# - source: salt://prometheus/files/alertmanager.systemd.jinja #} - source: salt://prometheus/files/exporter.systemd.jinja {%- elif grains.get('init') == 'upstart' %} - name: /etc/init/alertmanager.conf - source: salt://prometheus/files/alertmanager.upstart.jinja {%- endif %} - template: jinja - defaults: svc: alertmanager user: {{ prometheus.user }} group: {{ prometheus.group }} bin_path: {{ prometheus.alertmanager.version_path }} args: {{ prometheus.alertmanager.args.get('service_args', []) }} url: {{ prometheus.alertmanager.args.url }} description: AlertManager Service - watch: - file: alertmanager_defaults - require_in: - file: alertmanager_service alertmanager_service: service.running: - name: alertmanager - enable: True - reload: True - watch: - file: alertmanager_service_unit - file: alertmanager_config {# - file: alertmanager_bin_link #}