Merge "Salt Engine for graph data processing"
diff --git a/README.rst b/README.rst
index 364e59a..90d62ef 100644
--- a/README.rst
+++ b/README.rst
@@ -145,6 +145,32 @@
host: 127.0.0.1
port: 9999
+
+Salt engine definition for saltgraph metadata collector
+
+.. code-block:: yaml
+
+ salt:
+ master:
+ engine:
+ graph_metadata:
+ engine: saltgraph
+ host: 127.0.0.1
+ port: 5432
+ user: salt
+ password: salt
+ database: salt
+
+Salt engine definition for sending events from docker events
+
+.. code-block:: yaml
+
+ salt:
+ master:
+ engine:
+ docker_events:
+ docker_url: unix://var/run/docker.sock
+
Salt master peer setup for remote certificate signing
.. code-block:: yaml
diff --git a/salt/files/_engine.conf b/salt/files/_engine.conf
new file mode 100644
index 0000000..ac0d328
--- /dev/null
+++ b/salt/files/_engine.conf
@@ -0,0 +1,6 @@
+{% from "salt/map.jinja" import master with context %}
+
+engines:
+{%- for engine_name, engine in master.engine.items() %}
+- {{ engine.get('engine', engine_name) }}: {{ engine|yaml }}
+{%- endfor %}
diff --git a/salt/master/env.sls b/salt/master/env.sls
index a61d249..4568e20 100644
--- a/salt/master/env.sls
+++ b/salt/master/env.sls
@@ -13,6 +13,7 @@
- /srv/salt/env/{{ master.system.environment }}/_modules
- /srv/salt/env/{{ master.system.environment }}/_states
- /srv/salt/env/{{ master.system.environment }}/_grains
+ - /srv/salt/env/{{ master.system.environment }}/_engines
- /srv/salt/env/{{ master.system.environment }}
- makedirs: True
@@ -329,6 +330,17 @@
{%- endfor %}
+{%- for engine_name, engine in formula.get('engine', {}).iteritems() %}
+
+salt_master_{{ environment_name }}_{{ engine_name }}_state:
+ file.symlink:
+ - name: /srv/salt/env/{{ environment_name }}/_engines/{{ engine_name }}
+ - target: /srv/salt/env/{{ environment_name }}/_formulas/{{ formula_name }}/_engines/{{ engine_name }}
+ - force: True
+ - makedirs: True
+
+{%- endfor %}
+
{%- endif %}
{%- endif %}
diff --git a/salt/master/service.sls b/salt/master/service.sls
index 85f7eb5..4c0c69b 100644
--- a/salt/master/service.sls
+++ b/salt/master/service.sls
@@ -42,6 +42,20 @@
{%- endif %}
+{%- if master.engine is defined %}
+
+/etc/salt/master.d/_engine.conf:
+ file.managed:
+ - source: salt://salt/files/_engine.conf
+ - user: root
+ - template: jinja
+ - require:
+ - {{ master.install_state }}
+ - watch_in:
+ - service: salt_master_service
+
+{%- endif %}
+
{%- if master.peer is defined %}
/etc/salt/master.d/_peer.conf:
diff --git a/salt/master/test.sls b/salt/master/test.sls
new file mode 100644
index 0000000..3f4d376
--- /dev/null
+++ b/salt/master/test.sls
@@ -0,0 +1,18 @@
+{%- from "salt/map.jinja" import master with context %}
+{%- if master.enabled %}
+
+salt_master_test_packages:
+ pkg.latest:
+ - names: {{ master.test_pkgs }}
+
+/etc/salt/roster:
+ file.managed:
+ - source: salt://salt/files/roster
+ - user: root
+ - template: jinja
+ - require:
+ - {{ master.install_state }}
+ - watch_in:
+ - service: salt_master_service
+
+{%- endif %}
\ No newline at end of file