blob: f9cc8d194966418306177a964745dfe61b6013bf [file] [log] [blame]
{% set fluentd_agent = salt['grains.filter_by']({
'Debian': {
'user': 'root',
'group': 'root',
'pkgs': ['td-agent', 'build-essential', 'ruby-dev'],
'plugin': {
'fluent-plugin-elasticsearch': {
'gem': ['fluent-plugin-elasticsearch']
},
},
'gem_path': 'td-agent-gem',
'service_name': 'td-agent',
'dir': {
'config': '/etc/td-agent',
'positiondb': '/var/lib/fluentd/positiondb'
},
'config': {
},
},
}, merge=salt['pillar.get']('fluentd:agent')) %}
{# Collect configuration from */meta/fluentd.yml #}
{%- set fluentd_grains = {'agent': {'config': {'input': {}, 'filter': {}, 'match': {}, 'label': {}}}} %}
{%- for service_name, service in pillar.items() %}
{%- if service.get('_support', {}).get('fluentd', {}).get('enabled', False) %}
{%- set grains_fragment_file = service_name+'/meta/fluentd.yml' %}
{%- macro load_grains_file() %}{% include grains_fragment_file ignore missing %}{% endmacro %}
{%- set grains_yaml = load_grains_file()|load_yaml %}
{%- if grains_yaml is mapping %}
{%- set fluentd_grains = salt['grains.filter_by']({'default': fluentd_grains}, merge=grains_yaml) %}
{%- endif %}
{%- endif %}
{%- endfor %}
{# Deep-merge the service configuration with the pillar data #}
{%- do salt['defaults.merge'](fluentd_agent, fluentd_grains.get('agent', {})) %}