After some more digging, I found that the logic of
Hash.merge is reversed with the logic of DeepHash.merge,
so to get the expected results, the hiera/backend.rb must swap its hashes
When you change the merge_answer in hiera/backand.rb
from:
def merge_answer(left,right)
case Config[:merge_behavior]
when :deeper,'deeper'
left.deep_merge!(right)
when :deep,'deep'
left.deep_merge(right)
else # Native and undefined
left.merge(right)
end
end
to:
def merge_answer(left,right)
case Config[:merge_behavior]
when :deeper,'deeper'
right.deep_merge!(left) # <- swapped left/right
when :deep,'deep'
right.deep_merge(left) # <- swapped left/right
else # Native and undefined
left.merge(right)
end
end
then the results are what I expected
Fred.
Op maandag 20 mei 2013 11:53:20 UTC+2 schreef Fred Gansevles het volgende: