SaltStack Config – Grains / Pillar Data Not Attaching to Minions
search cancel

SaltStack Config – Grains / Pillar Data Not Attaching to Minions

book

Article ID: 419554

calendar_today

Updated On:

Products

VCF Operations/Automation (formerly VMware Aria Suite)

Issue/Introduction

When creating or attaching pillar data through the SaltStack Config (RaaS) UI, the minion does not receive the assigned pillar. Executing pillar.items on the affected minion returns an empty response, even though the job completes successfully.

Log verification shows the following behavior:

 
2025-11-05 15:52:00,433 [salt.utils.event:823][DEBUG][10400] Sending event: tag = __master_req_channel_payload/salt-master-fqdn; data = {'cmd': '_return', 'id': 'salt-minion-fqdn', 'success': True, 'return': {}, 'retcode': 0, 'jid': 'xxxxxxxxxxxxxxxx', 'fun': 'pillar.items', 'fun_args': [], 'user': 'root'}

The job executes successfully (success: True), but the pillar data returned is {}, indicating that the minion is not receiving or processing the pillar.

Environment

SaltStack Config 8.x

Cause

1. Missing tgtmatch Engine in raas.conf

The tgtmatch engine was missing under /etc/salt/master.d/raas.conf.
This engine is essential for target resolution between the Salt master and RaaS.

To correct this, the following entry was added under the engines section:

engines:
  - tgtmatch: {}

Purpose of tgtmatch:

  • Resolves targets from RaaS queries

  • Allows RaaS UI/API to evaluate node groups, grains, pillar data, and compound targets

  • Ensures accurate and consistent minion selection before job execution

These engines are mandatory for seamless integration between the Salt master and SaltStack Config, handling event flow, RPC tasks, job lifecycle tracking, and minion targeting.

2. Conflicting top.sls Under /srv/pillar

A top.sls file existed on both Salt masters.
This file overrides pillar targeting specified through the SaltStack Config UI, leading to minions receiving no pillar data.

Resolution

Resolution

  1. Add the missing tgtmatch engine to /etc/salt/master.d/raas.conf:

    engines:
      - tgtmatch: {}
  2. Remove the conflicting top.sls file located under:

    /srv/pillar/top.sls
  3. Restart Salt master and RaaS services on both nodes to reload configuration, engines, and event processing.

  4. Validate the fix by attaching and detaching pillars through the SaltStack Config UI.
    Multiple tests confirmed that pillar data was correctly received by the minions after this change.

  5. UI Refresh Guidance:
    Users should refresh the SaltStack Config UI before and after attaching or detaching pillars to ensure the interface displays the correct state before reviewing pillar items.