hiera_hash in parameter lookup

33 views
Skip to first unread message

Corey Osman

unread,
Jan 27, 2016, 1:07:42 PM1/27/16
to Puppet Dev
I have the following code which uses the auto binding feature to lookup a hiera value. This is nothing new though. The problem I see is that there is no way to tell puppet to use hiera_hash() for the install_options.

class sql2014(
Hash $install_options = {},
String $instance_name = 'MSSQLSERVER',
Hash $ssdt_install_options = {}
)

Now I could alternatively specify hiera_hash but then I create a race condition unless I change the key name:

class sql2014(
Hash $install_options = hiera_hash(’sql2014::install_options’, {}),
String $instance_name = 'MSSQLSERVER',
Hash $ssdt_install_options = {}
)

Please tell me that when using puppet 4 data types, puppet will automatically switch hiera methods based on type to use the hiera hash / array binding method instead of the normal hiera method.

If not, is this even possible?


Corey


Rob Nelson

unread,
Jan 27, 2016, 1:37:31 PM1/27/16
to puppe...@googlegroups.com
Corey, take a look at the lookup_options to specify merge behavior with APL. Prior to this, APL would not do hash lookups with any merge behavior. This should change that: https://docs.puppetlabs.com/puppet/latest/reference/lookup_quick.html#specifying-merge-behavior and https://docs.puppetlabs.com/puppet/latest/reference/function.html#merge-behaviors for the valid options.


Corey




--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/2C87F17D-1E11-4CD7-A65B-8F4B4EB2E90E%40nwops.io.
For more options, visit https://groups.google.com/d/optout.

Corey Osman

unread,
Jan 27, 2016, 2:39:43 PM1/27/16
to Puppet Developers
1.  Can this be done in PE 3.8?
2. Its not clear where the lookup_options need to go.   Does the lookup_options go in hiera.yaml?


lookup_options: ntp::servers: merge: native? (I don't need deep merge)

Very cool stuff, I did not know about this.   But this would be exactly what I want. 


Corey

Rob Nelson

unread,
Jan 27, 2016, 2:52:55 PM1/27/16
to puppe...@googlegroups.com
It started in puppet 4, I believe 4.3. The lookup options go anywhere in your hiera data, common.yaml or somewhere more specific. It will merge, so you can add the ntp::servers key in common and sql2014::install_options in a fqdn/role type tier if need be. 
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/606d031e-cf26-4dfc-aba3-70b85c14bd54%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


--

Reply all
Reply to author
Forward
0 new messages