diff --git a/pillar/top.sls b/pillar/top.sls index 1363f9a..9343e77 100644 --- a/pillar/top.sls +++ b/pillar/top.sls @@ -1,8 +1,37 @@ +{% set country = salt['pillar.get']('country') %} +{% set domain = salt['grains.get']('domain') %} +{% set id = salt['grains.get']('id') %} {% set osrelease = salt['grains.get']('osrelease') %} +{% set roles = salt['pillar.get']('roles', []) %} +{% set virt_cluster = salt['pillar.get']('virt_cluster', '') %} +{% set virtual = salt['grains.get']('virtual') %} production: '*': - common +{% for role in roles %} + 'roles:{{ role }}': + - match: grain + - role.{{ role }} +{% endfor %} +{% if virt_cluster %} + 'G@virt_cluster:{{ virt_cluster }} and G@virtual:{{ virtual }}': + - match: compound + - virt_cluster.{{ virt_cluster }}.{{ virtual }} +{% endif %} + 'virtual:{{ virtual }}': + - match: grain + - virtual.{{ virtual }} + 'country:{{ country }}': + - match: grain + - country.{{ country }} +{% if domain %} + 'domain:{{ domain }}': + - match: grain + - domain.{{ domain.replace('.', '_') }} +{% endif %} 'osrelease:{{ osrelease }}': - match: grain - osrelease.{{ osrelease.replace('.', '_') }} + '{{ id }}': + - id.{{ id.replace('.', '_') }} diff --git a/salt/top.sls b/salt/top.sls index b7676cb..ee7de41 100644 --- a/salt/top.sls +++ b/salt/top.sls @@ -1,3 +1,10 @@ +{% set roles = salt['pillar.get']('roles', []) %} + production: '*': - role.base +{% for role in roles %} + 'roles:{{ role }}': + - match: grain + - role.{{ role }} +{% endfor %}