Pillars passed from command-line override pillar subtrees instead of merging #33647
Labels
Core
relates to code central or existential to Salt
Pillar
Regression
The issue is a bug that breaks functionality known to work in previous releases.
severity-critical
top severity, seen by most users, serious issues
ZRELEASED - Boron
Milestone
Description of Issue/Question
I am new to github, so apologies if this isn't written as expected.
This is a tracking bug for an apparent regression of issue 18429
##18429
On version 2016.3.0
The reproduction steps on that bug are still completely valid.
Here is the PR for the fix:
##32288
I've rolled my minions back to 2015.8.10 in order to have the fix in place (as it was a large blocker to rolling out salt in our test environments)
Setup
Snipped from previous issue:
assuming a pillar containing:
The following will result in the pillar 'settings:buzz' being undefined, whereas I'd expect it to be left intact and only the specific key to be overridden, or at least the pillar_source_merging_strategy to apply here as well:
salt '*' state.sls some.state pillar='{"settings":{"foo":"a"}}'
I believe the culprit is a line in: salt/state.py:State._gather_pillar():
ret.update(self._pillar_override)
which should be using Pillar.merge_sources() instead, in order to apply the pillar merge policy
Versions Report
Issue fixed in 2015.8.10, failed regression in 2016.3.0 - appears to be minion side only, and as I have already rolled back my minions, I can't get a useful version-report without taking an environment offline.
The text was updated successfully, but these errors were encountered: