{%- if pillar.salt is defined %}
agent:
  input:
  {%- if pillar.salt.get('master', {}).get('enabled', False) or pillar.salt.get('minion', {}).get('enabled', False) %}
    procstat:
      process:
        {%- if pillar.salt.get('master', {}).get('enabled', False)  %}
        salt-master:
          pattern: salt-master
        {%- endif %}
        {%- if pillar.salt.get('minion', {}).get('enabled', False)  %}
        salt-minion:
          pattern: salt-minion
        {%- endif %}
  {%- endif %}
  {%- if pillar.salt.get('minion', {}).get('enabled', False) and pillar.salt.get('minion', {}).cert is defined %}
    {%- set certificates = [] %}
    {%- for cert_name, cert in pillar.salt.minion.get('cert') | dictsort %}
      {%- if cert.get('enabled', True) %}
        {%- do certificates.append(cert.get('cert_file', '/etc/ssl/certs/' + cert.common_name + '.crt')) %}
      {%- endif %}
    {%- endfor %}
    {%- if certificates %}
    x509:
      sources: {{ certificates }}
    {%- endif %}
  {%- endif %}
{%- endif %}
