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