From 23fd8b64af20345a17a1e0b0c9e84f699b1c58bc Mon Sep 17 00:00:00 2001
From: Niels Abspoel <aboe76@gmail.com>
Date: Fri, 6 Feb 2015 22:27:55 +0100
Subject: [PATCH] Fix #39 multi master support to minion

This will fix #39

And it will be backwards compatible with the current pillar configuration.
---
 pillar.example                     |  8 ++++++++
 salt/files/minion.d/_defaults.conf | 19 +++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/pillar.example b/pillar.example
index a4a366b..aadce72 100644
--- a/pillar.example
+++ b/pillar.example
@@ -30,7 +30,15 @@ salt:
  
   # salt minion config:
   minion:
+
+    # single master setup
     master: salt
+    
+    # multi master setup
+    master:
+      - salt_master_1
+      - salt_master_2
+    
     fileserver_backend:
       - git
       - roots
diff --git a/salt/files/minion.d/_defaults.conf b/salt/files/minion.d/_defaults.conf
index 2f70112..7c656eb 100644
--- a/salt/files/minion.d/_defaults.conf
+++ b/salt/files/minion.d/_defaults.conf
@@ -23,7 +23,26 @@
 
 # Set the location of the salt master server. If the master server cannot be
 # resolved, then the minion will fail to start.
+# master:salt
+{%- if 'master' in cfg_minion -%}
+{%- if cfg_minion['master'] is not string %}
+master:
+  {% for name in cfg_minion['master'] -%}
+  - {{ name }}
+  {% endfor -%}
+{%- else %}
+{{ get_config('master', 'salt') }}
+{%- endif %}
+{% elif 'master' in cfg_salt -%}
+{%- if cfg_salt['master'] is not string %}
+master:
+  {% for name in cfg_salt['master'] -%}
+  - {{ name }}
+  {% endfor -%}
+{%- else %}
 {{ get_config('master', 'salt') }}
+{%- endif -%}
+{%- endif %}
 
 # If multiple masters are specified in the 'master' setting, the default behavior
 # is to always try to connect to them in the order they are listed. If random_master is
-- 
GitLab