| grain: |
| {# Setup basic structure for all roles so updates can apply #} |
| {%- set service_grains = { |
| 'log_collector': { |
| 'decoder': {}, |
| 'input': {}, |
| 'trigger': {}, |
| 'filter': {}, |
| 'splitter': {}, |
| 'encoder': {}, |
| 'output': {}, |
| }, |
| 'metric_collector': { |
| 'decoder': {}, |
| 'input': {}, |
| 'trigger': {}, |
| 'alarm': {}, |
| 'filter': {}, |
| 'splitter': {}, |
| 'encoder': {}, |
| 'output': {}, |
| }, |
| 'remote_collector': { |
| 'decoder': {}, |
| 'input': {}, |
| 'trigger': {}, |
| 'alarm': {}, |
| 'filter': {}, |
| 'splitter': {}, |
| 'encoder': {}, |
| 'output': {}, |
| }, |
| 'aggregator': { |
| 'decoder': {}, |
| 'input': {}, |
| 'trigger': {}, |
| 'alarm_cluster': {}, |
| 'filter': {}, |
| 'splitter': {}, |
| 'encoder': {}, |
| 'output': {}, |
| }, |
| 'ceilometer_collector': { |
| 'decoder': {}, |
| 'input': {}, |
| 'filter': {}, |
| 'splitter': {}, |
| 'encoder': {}, |
| 'output': {}, |
| } |
| } %} |
| |
| {# Loading the other services' support metadata for local roles #} |
| {%- macro load_support_file(support_fragment_file) %}{% include support_fragment_file ignore missing %}{% endmacro %} |
| {%- for svc_name, svc in pillar.iteritems() %} |
| {%- if svc.get('_support', {}).get('heka', {}).get('enabled', False) %} |
| {%- set heka_fragment_file = svc_name+'/meta/heka.yml' %} |
| {%- set heka_yaml = load_support_file(heka_fragment_file)|load_yaml %} |
| {%- set service_grains = salt['grains.filter_by']({'default': service_grains}, merge=heka_yaml) %} |
| {%- endif %} |
| {%- endfor %} |
| heka: |
| heka: |
| {{ salt['heka_alarming.grains_for_mine'](service_grains)|yaml(False)|indent(6) }} |
| |
| {#- |
| vim: syntax=jinja |
| -#} |