Hello
I recently came across a module where I had the following problem:
I have some arrays with OS specific defaults which get written into a
config file via template. The user of the module may want to do one of
the following things:
1. Use the default settings provided by the module
2. Completely overwrite the array
3. Append some values to the array from a hiera_array lookup
4. Overwrite the defaults and Append some values to the array from a
hiera_array lookup
I wondered if there is an easy solution to this or an already
established pattern. The code I came up with which implements all the
requirements above looks something like this:
manifests/init.pp
class example (
$myvar = $example::params::myvar,
) inherits example::params {
notify{$myvar: }
}
manifests/params.pp
class example::params {
$myvar_defaults = [
'some',
'actual',
'defaults',
]
$myvar_real_defaults = hiera('example::myvar_defaults', $myvar_defaults)
$myvar_append = hiera_array('example::myvar_append', [])
$myvar = $myvar_real_defaults + $myvar_append
}
Here is how this works for the requirements:
1. Simply use the class
2. Completely overwrite by setting the class parameter example::myvar as
usual
3. Values set in hiera for variable example::myvar_append will be
appended to example::myvar
4. Setting example::myvar_defaults (priority lookup) will overwrite the
defaults but still append example::myvar_append
Would be great if I can get some feedback on this. Is there a simpler
solution I missed? Is this too confusing to be useful at all? Is there
an already established pattern as a solution to this problem I should
use instead?
Thanks in advance
Andreas
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/56CC26CE.7050303%40puzzle.ch.
For more options, visit https://groups.google.com/d/optout.