Skip to content

Commit

Permalink
Merge pull request #22 from mgomersbach/move-to-os-yaml-files
Browse files Browse the repository at this point in the history
Move data to YAML files and keep map.jinja a template
  • Loading branch information
aboe76 authored Oct 17, 2018
2 parents 329323b + 9a0c5cc commit 7f24db8
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 31 deletions.
52 changes: 21 additions & 31 deletions sysctl/map.jinja
Original file line number Diff line number Diff line change
@@ -1,45 +1,35 @@
# -*- coding: utf-8 -*-
# vim: ft=jinja

{## Start with defaults from defaults.sls ##}
{## Start with defaults from defaults.sls and osfamilymap.yml ##}
{% import_yaml 'sysctl/defaults.yml' as default_settings %}
{% import_yaml "sysctl/osfamilymap.yml" as os_family_map %}

{% set sysctl_lookup = salt['pillar.get']('sysctl:lookup', {}).copy() %}

{% if sysctl_lookup.params is defined %}
{% do sysctl_lookup.pop('params') %}
{% endif %}

{% if sysctl_lookup.params2 is defined %}
{% do sysctl_lookup.pop('params2') %}
{% endif %}
{% set osfam = salt['grains.filter_by'](
os_family_map,
grain='os_family',
) or {}
%}

{## setup variable using grains['os_family'] based logic ##}
{% set os_family_map = salt['grains.filter_by']({
'Arch': {},
'RedHat': {
"config": {
"location": '/etc/sysctl.conf',
}
},
'Suse': {
"pkg": "procps",
},
'Debian': {
"pkg": "procps",
},
},
grain="os_family",
merge=sysctl_lookup)
{% do salt['defaults.merge'](default_settings['sysctl'], osfam) %}
{% do salt['defaults.merge'](
default_settings['sysctl'],
salt['pillar.get']('sysctl:lookup',{}),
)
%}

{## Merge the flavor_map to the default settings ##}
{% do default_settings.sysctl.update(os_family_map) %}
{## Apply backwards compatiblility after merge ##}
{% if default_settings['sysctl']['params'] is defined %}
{% do default_settings['sysctl'].pop('params') %}
{% endif %}
{% if default_settings['sysctl']['params2'] is defined %}
{% do default_settings['sysctl'].pop('params2') %}
{% endif %}

{## Merge in sysctl pillar ##}
{% set sysctl_settings = salt['pillar.get'](
'sysctl',
default=default_settings.sysctl,
merge=True
default=default_settings['sysctl'],
merge=True,
)
%}
12 changes: 12 additions & 0 deletions sysctl/osfamilymap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
RedHat:
config:
location: /etc/sysctl.conf
Suse:
pkg: procps
Debian:
pkg: procps
Gentoo:
pkg: sys-process/procps
FreeBSD:
config:
location: /etc/sysctl.conf

0 comments on commit 7f24db8

Please sign in to comment.