diff --git a/pillar.example b/pillar.example index 29d26d3..59c2e1f 100644 --- a/pillar.example +++ b/pillar.example @@ -101,6 +101,13 @@ salt: type: runner cmd: jobs.list_jobs + # optional: these reactors will be configured on the master + # They override reactors configured in + # 'salt:reactors' or the old 'salt:reactor' parameters + reactors: + - 'master/deploy': + - /srv/salt/reactors/deploy.sls + # salt minion config: minion: @@ -177,6 +184,12 @@ salt: - 1.0 interval: 10 + # Optional reactors: these reactors will be configured on the minion + # They override reactors configured in + # 'salt:reactors' or the old 'salt:reactor' parameters + reactors: + - 'minion/deploy': + - /srv/salt/reactors/deploy.sls # salt cloud config cloud: @@ -235,9 +248,7 @@ salt: - IAD - SYD - HKG - reactor: - - 'deploy': - - /srv/salt/reactors/deploy.sls + ssh_roster: prod1: host: host.example.com @@ -255,6 +266,11 @@ salt: pub: | ........... + # These reactors will be configured both in the minion and the master + reactors: + - 'deploy': + - /srv/salt/reactors/deploy.sls + salt_cloud_certs: aws: pem: | diff --git a/salt/files/master.d/f_defaults.conf b/salt/files/master.d/f_defaults.conf index 6e7cebe..bc2d162 100644 --- a/salt/files/master.d/f_defaults.conf +++ b/salt/files/master.d/f_defaults.conf @@ -1,6 +1,6 @@ # This file managed by Salt, do not edit by hand!! # Based on salt version 2016.11 default config -{% set reserved_keys = ['master', 'minion', 'cloud', 'salt_cloud_certs', 'engines', 'lxc.network_profile', 'lxc.container_profile'] -%} +{% set reserved_keys = ['master', 'minion', 'cloud', 'salt_cloud_certs', 'engines', 'lxc.network_profile', 'lxc.container_profile', 'reactors'] -%} {% set cfg_salt = pillar.get('salt', {}) -%} {% set cfg_master = cfg_salt.get('master', {}) -%} {% set default_keys = [] -%} diff --git a/salt/files/master.d/reactor.conf b/salt/files/master.d/reactor.conf index dd7fbb5..9c8a4b7 100644 --- a/salt/files/master.d/reactor.conf +++ b/salt/files/master.d/reactor.conf @@ -1,7 +1,11 @@ # # This file is managed by Salt! Do not edit by hand! # -{%- set reactors = salt['pillar.get']('salt:reactor') -%} +{# The parameter reactor is kept for backward compatibility -#} +{%- set reactors = salt['pillar.get']('salt:reactor', []) -%} +{%- set reactors = salt['pillar.get']('salt:reactors', default=reactors, merge=True) -%} +{%- set reactors = salt['pillar.get']('salt:master:reactors', default=reactors, merge=True) -%} + {%- if reactors %} reactor: {%- for reactor in reactors %} diff --git a/salt/files/minion.d/f_defaults.conf b/salt/files/minion.d/f_defaults.conf index a14b9ac..c7e59f9 100644 --- a/salt/files/minion.d/f_defaults.conf +++ b/salt/files/minion.d/f_defaults.conf @@ -1,7 +1,7 @@ # This file managed by Salt, do not edit by hand!! # Based on salt version 2016.11 default config # -{% set reserved_keys = ['master', 'minion', 'cloud', 'salt_cloud_certs', 'engines', 'beacons'] -%} +{% set reserved_keys = ['master', 'minion', 'cloud', 'salt_cloud_certs', 'engines', 'beacons', 'reactors'] -%} {% set cfg_salt = pillar.get('salt', {}) -%} {% set cfg_minion = cfg_salt.get('minion', {}) -%} {% set default_keys = [] -%} diff --git a/salt/files/minion.d/reactor.conf b/salt/files/minion.d/reactor.conf index dd7fbb5..d0f0a39 100644 --- a/salt/files/minion.d/reactor.conf +++ b/salt/files/minion.d/reactor.conf @@ -1,7 +1,11 @@ # # This file is managed by Salt! Do not edit by hand! # -{%- set reactors = salt['pillar.get']('salt:reactor') -%} +{# The parameter reactor is kept for backward compatibility -#} +{%- set reactors = salt['pillar.get']('salt:reactor', []) -%} +{%- set reactors = salt['pillar.get']('salt:reactors', default=reactors, merge=True) -%} +{%- set reactors = salt['pillar.get']('salt:minion:reactors', default=reactors, merge=True) -%} + {%- if reactors %} reactor: {%- for reactor in reactors %}