Enable prometheus pushgateway persistent storage
Change-Id: If539f26909bd56b168a806773bb9c6574c86bf40
Closes-bug: PROD-21073
diff --git a/metadata/service/pushgateway/container.yml b/metadata/service/pushgateway/container.yml
index 8d2e60e..0fff6f5 100644
--- a/metadata/service/pushgateway/container.yml
+++ b/metadata/service/pushgateway/container.yml
@@ -7,3 +7,5 @@
bind:
address: 0.0.0.0
port: 9091
+ dir:
+ data: /srv/volumes/local/pushgateway
diff --git a/prometheus/init.sls b/prometheus/init.sls
index 0e6cdad..79e77c1 100644
--- a/prometheus/init.sls
+++ b/prometheus/init.sls
@@ -1,6 +1,7 @@
{%- if pillar.prometheus.get('server', {}).get('enabled', False) or
pillar.prometheus.get('relay', {}).get('enabled', False) or
pillar.prometheus.get('alerta', {}).get('enabled', False) or
+ pillar.prometheus.get('pushgateway', {}).get('enabled', False) or
pillar.prometheus.alertmanager is defined or
pillar.prometheus.exporters is defined %}
include:
@@ -13,6 +14,9 @@
{%- if pillar.prometheus.get('alerta', {}).get('enabled', False) %}
- prometheus.alerta
{%- endif %}
+ {%- if pillar.prometheus.get('pushgateway', {}).get('enabled', False) %}
+ - prometheus.pushgateway
+ {%- endif %}
{%- if pillar.prometheus.alertmanager is defined %}
- prometheus.alertmanager
{%- endif %}
diff --git a/prometheus/map.jinja b/prometheus/map.jinja
index a8f0378..1581615 100644
--- a/prometheus/map.jinja
+++ b/prometheus/map.jinja
@@ -26,6 +26,15 @@
}, merge=salt['pillar.get']('prometheus:exporters')) %}
{%- do salt['defaults.merge'](exporters, grains.get('prometheus', {}).get('exporters', {})) %}
+{% set pushgateway = salt['grains.filter_by']({
+ 'default': {
+ 'enabled': True,
+ 'dir': {
+ 'data': '/srv/volumes/local/pushgateway',
+ }
+ },
+}, merge=salt['pillar.get']('prometheus:pushgateway')) %}
+
{%- set monitoring = salt['grains.filter_by']({
'default': {
'remote_storage_adapter': {
diff --git a/prometheus/pushgateway.sls b/prometheus/pushgateway.sls
new file mode 100644
index 0000000..a9023d9
--- /dev/null
+++ b/prometheus/pushgateway.sls
@@ -0,0 +1,12 @@
+{% from "prometheus/map.jinja" import pushgateway with context %}
+{%- if pushgateway.enabled %}
+
+{%- if pillar.docker is defined and pillar.docker.host is defined %}
+
+{{pushgateway.dir.data}}:
+ file.directory:
+ - makedirs: True
+ - mode: 755
+
+{%- endif %}
+{%- endif %}
diff --git a/tests/pillar/pushgateway.sls b/tests/pillar/pushgateway.sls
index 583fcde..27211d3 100644
--- a/tests/pillar/pushgateway.sls
+++ b/tests/pillar/pushgateway.sls
@@ -5,3 +5,5 @@
address: 0.0.0.0
port: 9091
external_port: 15012
+ dir:
+ data: /opt/pushgateway/data