{## Start with defaults from defaults.yaml ##} {% import_yaml "openssh/defaults.yaml" as default_settings %} {## Setup variable using grains['os_family'] based logic, only add key:values here that differ from whats in defaults.yaml ##} {% set os_family_map = salt['grains.filter_by']({ 'Arch': { 'server': 'openssh', 'client': 'openssh', 'service': 'sshd', }, 'Debian': { 'server': 'openssh-server', 'client': 'openssh-client', 'service': 'ssh', }, 'FreeBSD': { 'service': 'sshd', 'dig_pkg': 'bind-tools', }, 'Gentoo': { 'server': 'net-misc/openssh', 'client': 'net-misc/openssh', 'service': 'sshd', 'dig_pkg': 'net-dns/bind-tools', }, 'RedHat': { 'server': 'openssh-server', 'client': 'openssh', 'service': 'sshd', 'dig_pkg': 'bind-utils', }, 'Suse': { 'server': 'openssh', 'client': 'openssh', 'service': 'sshd', 'dig_pkg': 'bind-utils', }, } , grain="os_family" , merge=salt['pillar.get']('openssh:lookup')) %} {## Merge the flavor_map to the default settings ##} {% do default_settings.openssh.update(os_family_map) %} {## Merge in openssh:lookup pillar ##} {% set openssh = salt['pillar.get']( 'openssh', default=default_settings.openssh, merge=True ) %}