Merge pull request #16 from elemoine/stacklight-sync-master

Sync stacklight branch from master
diff --git a/metadata/service/server/container.yml b/metadata/service/server/container.yml
new file mode 100644
index 0000000..8fd16ee
--- /dev/null
+++ b/metadata/service/server/container.yml
@@ -0,0 +1,30 @@
+parameters:
+  kubernetes:
+    control:
+      configmap:
+        rabbitmq-server:
+          grains:
+            os_family: Debian
+          pillar:
+            rabbitmq:
+              server:
+                enabled: true
+                secret_key: ${_param:rabbitmq_secret_key}
+                memory:
+                  vm_high_watermark: 0.8
+                bind:
+                  address: 0.0.0.0
+                  port: 5672
+                management:
+                  bind:
+                    address: 0.0.0.0
+                    port: 15672
+                plugins:
+                - amqp_client
+                - rabbitmq_management
+                admin:
+                  name: admin
+                  password: ${_param:rabbitmq_admin_password}
+              cluster:
+                enabled: true
+                mode: disc
\ No newline at end of file
diff --git a/metadata/service/support.yml b/metadata/service/support.yml
index 9ff0c47..43a86c4 100644
--- a/metadata/service/support.yml
+++ b/metadata/service/support.yml
@@ -11,3 +11,5 @@
         enabled: true
       iptables:
         enabled: true
+      config:
+        enabled: true
\ No newline at end of file
diff --git a/rabbitmq/map.jinja b/rabbitmq/map.jinja
index 9a24324..35586ca 100644
--- a/rabbitmq/map.jinja
+++ b/rabbitmq/map.jinja
@@ -67,9 +67,9 @@
             },
         },
     },
-}, merge=salt['pillar.get']('rabbitmq:server')) %}
+}, merge=pillar.rabbitmq.get('server', {})) %}
 
-{% set cluster = salt['pillar.get']('rabbitmq:cluster') %}
+{% set cluster = pillar.rabbitmq.get('cluster', {}) %}
 
 {%- set rabbitmq_users = {} %}
 {%- for host_name, host in server.get('host', {}).iteritems() %}
diff --git a/rabbitmq/meta/config.yml b/rabbitmq/meta/config.yml
new file mode 100644
index 0000000..c2ee3cd
--- /dev/null
+++ b/rabbitmq/meta/config.yml
@@ -0,0 +1,7 @@
+config:
+  {%- if pillar.rabbitmq.server is defined %}
+  {%- from "rabbitmq/map.jinja" import server with context %}
+  rabbitmq.config:
+    source: "salt://rabbitmq/files/rabbitmq.config"
+    template: jinja
+  {%- endif %}
diff --git a/rabbitmq/meta/salt.yml b/rabbitmq/meta/salt.yml
new file mode 100644
index 0000000..4a661a9
--- /dev/null
+++ b/rabbitmq/meta/salt.yml
@@ -0,0 +1,6 @@
+orchestrate:
+  server:
+    priority: 130
+  cluster:
+    priority: 130
+
diff --git a/rabbitmq/meta/sensu.yml b/rabbitmq/meta/sensu.yml
index d66c49b..cd16341 100644
--- a/rabbitmq/meta/sensu.yml
+++ b/rabbitmq/meta/sensu.yml
@@ -27,7 +27,7 @@
     - {{ network.fqdn|replace('.', '-') }}
 {%- else %}
   remote_rabbitmq_server_tcp_{{ network.fqdn }}:
-    command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_tcp -H {% if grains.ipv4[0] == '127.0.0.1' %}{{ grains.ipv4[1] }}{% else %}{{ grains.ipv4[0] }}{% endif %} -p 5672"
+    command: "PATH=$PATH:/usr/lib64/nagios/plugins:/usr/lib/nagios/plugins check_tcp -H {{ address }} -p 5672"
     interval: 60
     occurrences: 1
     subscribers:
@@ -44,4 +44,5 @@
     interval: 300
     occurrences: 3
     subscribers:
-    - local-rabbitmq-server
\ No newline at end of file
+    - {{ grains['fqdn']|replace('.', '-') }}
+
diff --git a/rabbitmq/orchestrate/cluster.sls b/rabbitmq/orchestrate/cluster.sls
index 9659383..34fbbf2 100644
--- a/rabbitmq/orchestrate/cluster.sls
+++ b/rabbitmq/orchestrate/cluster.sls
@@ -1,14 +1,17 @@
-salt_rabbitmq_cluster_master:
+rabbitmq.cluster.master:
   salt.state:
-    - tgt: 'G@roles:rabbitmq.cluster and I@rabbitmq:cluster:role:master'
-    - tgt_type: compound
+    - tgt: 'rabbitmq:cluster:role:master'
+    - tgt_type: pillar
+    - queue: True
     - sls: rabbitmq
 
-salt_rabbitmq_cluster_slave:
+rabbitmq.cluster.slave:
   salt.state:
-    - tgt: 'G@roles:rabbitmq.cluster and I@rabbitmq:cluster:role:slave'
-    - tgt_type: compound
+    - tgt: 'rabbitmq:cluster:role:slave'
+    - tgt_type: pillar
+    - queue: True
     - sls: rabbitmq
+    - batch: 1
     - require:
-      - salt: salt_rabbitmq_cluster_master
+      - salt: rabbitmq.cluster.master
 
diff --git a/rabbitmq/orchestrate/server.sls b/rabbitmq/orchestrate/server.sls
index e454490..67c888a 100644
--- a/rabbitmq/orchestrate/server.sls
+++ b/rabbitmq/orchestrate/server.sls
@@ -1,6 +1,6 @@
-rabbitmq_state:
+rabbitmq.server:
   salt.state:
-    - tgt: 'G@roles:rabbitmq.server and not G@roles:rabbitmq.cluster'
+    - tgt: 'I@rabbitmq:server and not I@rabbitmq:cluster'
     - tgt_type: compound
     - sls: rabbitmq
 
diff --git a/rabbitmq/server/service.sls b/rabbitmq/server/service.sls
index d99e0a9..15cdb79 100644
--- a/rabbitmq/server/service.sls
+++ b/rabbitmq/server/service.sls
@@ -12,6 +12,7 @@
   - template: jinja
   - user: rabbitmq
   - group: rabbitmq
+  - makedirs: True
   - mode: 440
   - require:
     - pkg: rabbitmq_packages