Skip to content

salt.utils.secret.mask_pillar not unset during pillar SLS rendering#69176

Merged
dwoz merged 2 commits into
saltstack:3008.xfrom
Akm0d:fix/69160/pillar-mask-render
May 16, 2026
Merged

salt.utils.secret.mask_pillar not unset during pillar SLS rendering#69176
dwoz merged 2 commits into
saltstack:3008.xfrom
Akm0d:fix/69160/pillar-mask-render

Conversation

@Akm0d
Copy link
Copy Markdown
Contributor

@Akm0d Akm0d commented May 15, 2026

What does this PR do?

Fixes a critical regression introduced by the new Pillar Output Masking feature where pillar string values rendered via Jinja are incorrectly masked as **********. This explicitly unsets the mask_pillar ContextVar during pillar SLS rendering.

What issues does this PR fix or reference?

Fixes #69160
Fixes #69144

Previous Behavior

In 3008.0rc3, string values in pillar SLS files were evaluated to literal ********** strings when interpolated. This occurred because salt.utils.secret.mask_pillar defaults to True and was never unset by salt/pillar/__init__.py:render_pillar().

New Behavior

The mask_pillar ContextVar is explicitly set to False prior to executing the pillar renderer and reset immediately afterward (mirroring the behavior already present in the state template renderer). Pillar SLS files now correctly render their actual unmasked string values. Functional tests have been added to prevent future regressions.

Merge requirements satisfied?

[NOTICE] Bug fixes or features added to Salt require tests.

Commits signed with GPG?

Yes

@dwoz dwoz merged commit c0889e9 into saltstack:3008.x May 16, 2026
991 of 993 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:full Run the full test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants