diff --git a/salt/files/master.d/f_defaults.conf b/salt/files/master.d/f_defaults.conf index 3da402e..54cb732 100644 --- a/salt/files/master.d/f_defaults.conf +++ b/salt/files/master.d/f_defaults.conf @@ -408,7 +408,19 @@ client_acl_blacklist: # master_tops: # ext_nodes: # -{{ get_config('master_tops', '{}') }} +{% if 'master_tops' in cfg_master %} +master_tops: +{%- for master in cfg_master['master_tops'] -%} + {%- if cfg_master['master_tops'][master] is string %} + {{ master }}: {{ cfg_master['master_tops'][master] }} + {%- else %} + {{ master}}: + {%- for parameter in cfg_master['master_tops'][master] %} + {{ parameter }}: {{ cfg_master['master_tops'][master][parameter] }} + {%- endfor -%} + {%- endif -%} +{%- endfor %} +{% endif %} # The external_nodes option allows Salt to gather data that would normally be # placed in a top file. The external_nodes option is the executable that will @@ -672,9 +684,25 @@ pillar_roots: # {% if 'ext_pillar' in cfg_master %} ext_pillar: -{% for pillar in cfg_master['ext_pillar'] %} - - {{ pillar.items()[0][0] }}: {{ pillar.items()[0][1] }} -{% endfor %} +{%- for pillar in cfg_master['ext_pillar'] -%} + {%- for key in pillar -%} + {%- if pillar[key] is string %} + - {{ key }}: {{ pillar[key] }} + {%- elif pillar[key] is iterable and pillar[key] is not mapping %} + - {{ key }}: + {%- for parameter in pillar[key] %} + - {{ parameter }} + {%- endfor -%} + {%- elif pillar[key] is mapping and pillar[key] is not string %} + - {{ key }}: + {%- for parameter in pillar[key] %} + {{ parameter }}: {{pillar[key][parameter]}} + {%- endfor %} + {%- else %} +# Error in rendering {{ key }}, please read https://docs.saltstack.com/en/latest/topics/development/external_pillars.html#configuration + {% endif %} + {%- endfor -%} +{%- endfor %} {% elif 'ext_pillar' in cfg_salt %} ext_pillar: {% for pillar in cfg_salt['ext_pillar'] %}