Create data directory for am and prometheus
Change-Id: Ie89009480c06cafb15bb06ded263e49ef194dfc9
diff --git a/metadata/service/alertmanager/container.yml b/metadata/service/alertmanager/container.yml
index 8335969..4c36be9 100644
--- a/metadata/service/alertmanager/container.yml
+++ b/metadata/service/alertmanager/container.yml
@@ -4,6 +4,9 @@
prometheus:
alertmanager:
enabled: true
+ dir:
+ config: /srv/volumes/prometheus/alertmanager
+ data: /srv/volumes/local/prometheus/alertmanager
bind:
address: 0.0.0.0
port: 9093
diff --git a/metadata/service/server/container.yml b/metadata/service/server/container.yml
index 2269896..38facc3 100644
--- a/metadata/service/server/container.yml
+++ b/metadata/service/server/container.yml
@@ -6,6 +6,9 @@
prometheus:
server:
enabled: true
+ dir:
+ config: /srv/volumes/prometheus/server
+ data: /srv/volumes/local/prometheus/server
bind:
port: 9090
address: 0.0.0.0
diff --git a/prometheus/alertmanager.sls b/prometheus/alertmanager.sls
index 6e1481d..00902e4 100644
--- a/prometheus/alertmanager.sls
+++ b/prometheus/alertmanager.sls
@@ -3,11 +3,24 @@
{%- if pillar.docker is defined and pillar.docker.host is defined %}
+{{alertmanager.dir.config}}:
+ file.directory:
+ - makedirs: True
+
+# prometheus user is available inside docker container not on docker host
+# in dockerfile for alertmanager we ensure that it will have 999 uid
+{{alertmanager.dir.data}}:
+ file.directory:
+ - makedirs: True
+ - mode: 755
+ - user: {{alertmanager.user}}
+
{{alertmanager.dir.config}}/alertmanager.yml:
file.managed:
- source: salt://prometheus/files/alertmanager.yml
- template: jinja
- - makedirs: True
+ - require:
+ - file: {{alertmanager.dir.config}}
{%- endif %}
{%- endif %}
diff --git a/prometheus/files/prometheus.yml b/prometheus/files/prometheus.yml
index c199994..dd17832 100644
--- a/prometheus/files/prometheus.yml
+++ b/prometheus/files/prometheus.yml
@@ -6,7 +6,7 @@
{%- endif %}
rule_files:
-- {{ server.dir.config_in_container }}/alerts.yml
+- alerts.yml
{%- set static_target = {} %}
{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
diff --git a/prometheus/map.jinja b/prometheus/map.jinja
index bdba327..1819231 100644
--- a/prometheus/map.jinja
+++ b/prometheus/map.jinja
@@ -1,16 +1,11 @@
{% set server = salt['grains.filter_by']({
'default': {
- 'dir': {
- 'config': '/srv/volumes/prometheus',
- 'config_in_container': '/opt/prometheus/config'
- },
+ 'user': '999',
},
}, merge=salt['pillar.get']('prometheus:server')) %}
{% set alertmanager = salt['grains.filter_by']({
'default': {
- 'dir': {
- 'config': '/srv/volumes/prometheus',
- },
+ 'user': '999',
},
}, merge=salt['pillar.get']('prometheus:alertmanager')) %}
diff --git a/prometheus/server.sls b/prometheus/server.sls
index b324435..9aeb00c 100644
--- a/prometheus/server.sls
+++ b/prometheus/server.sls
@@ -3,17 +3,31 @@
{%- if pillar.docker is defined and pillar.docker.host is defined %}
+{{server.dir.config}}:
+ file.directory:
+ - makedirs: True
+
+# prometheus user is available inside docker container not on docker host
+# in dockerfile for prometheus we ensure that it will have 999 uid
+{{server.dir.data}}:
+ file.directory:
+ - makedirs: True
+ - mode: 755
+ - user: {{server.user}}
+
{{server.dir.config}}/prometheus.yml:
file.managed:
- source: salt://prometheus/files/prometheus.yml
- template: jinja
- - makedirs: True
+ - require:
+ - file: {{server.dir.config}}
{{server.dir.config}}/alerts.yml:
file.managed:
- source: salt://prometheus/files/alerts.yml
- template: jinja
- - makedirs: True
+ - require:
+ - file: {{server.dir.config}}
{%- endif %}
{%- endif %}
diff --git a/tests/pillar/alertmanager.sls b/tests/pillar/alertmanager.sls
index 092e788..d22c28f 100644
--- a/tests/pillar/alertmanager.sls
+++ b/tests/pillar/alertmanager.sls
@@ -2,7 +2,8 @@
alertmanager:
enabled: true
dir:
- config: /srv/volumes/prometheus
+ config: /srv/volumes/prometheus/alertmanager
+ data: /srv/volumes/local/prometheus/alertmanager
bind:
address: 0.0.0.0
port: 9093
@@ -45,4 +46,4 @@
- 127.0.0.1
log:
engine: json-file
- size: 50m
\ No newline at end of file
+ size: 50m
diff --git a/tests/pillar/server.sls b/tests/pillar/server.sls
index 9882410..5f2a2d2 100644
--- a/tests/pillar/server.sls
+++ b/tests/pillar/server.sls
@@ -2,8 +2,8 @@
server:
enabled: true
dir:
- config: /srv/volumes/prometheus
- config_in_container: /opt/prometheus/config
+ config: /srv/volumes/prometheus/server
+ data: /srv/volumes/local/prometheus/server
bind:
port: 9090
address: 0.0.0.0
@@ -76,4 +76,4 @@
- 127.0.0.1
log:
engine: json-file
- size: 50m
\ No newline at end of file
+ size: 50m