Hello all,
I don't know if I have hit a strange bug or it's just an incorrect
interpretation about how parameter autoloading works... Today I have been
searching, analysing and about to hit my head against a wall trying to
figure out why a call to hiera_hash was not merging data from top level
among different hierarchies. The problem was that I was trying to do
something like this:
class jenkins::slave (
$client = hiera_hash("jenkins::slave::client"),
$connection = hiera_hash("jenkins::slave::connection"),
$config = hiera_hash("jenkins::slave::config"),
$security = hiera_hash("jenkins::slave::security")) {
My idea was as simple as to retrieve data from 4 hashes and later on work
with that data but with the advantage to have that data defined into a
lower level (a sort of common class or project hierarchies) and refine at
leafs. All did compile and run smoothly but the results were not what I
expected. Leafs did have preference but they did set the whole value, no
merge was being done on top level variables that were not being defined at
leaf hierarchy (or the one that first made a match). Hashes were acting as
priority scope: first hit -> return.
After playing with lower classes, reinstalling, trying older versions and
including a lot of extra loggers I did try a desperate attempt without
hope: change one of the variables name into something different from other
classes (it did happen that jenkins::slave::config did conflict with
another class but that class was being processed and the variable and class
should be different kinds)...
class jenkins::slave (
$client = hiera_hash("jenkins::slave::client"),
$connection = hiera_hash("jenkins::slave::connection"),
$slave_config = hiera_hash("jenkins::slave::config"),
$security = hiera_hash("jenkins::slave::security")) {
And magic happened! $slave_config variable was doing merge but not the
others! I did not understand why the others were not working (they were not
colliding with anything in my code) but then a voice came to my mind...
Puppet 3.x did include a new feature, parameter autoload through hiera...
And it works... But removes the explicit functionality that was my call to
hiera_hash!
Is that behavior correct? Is it a bug?
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.