I like the more compact syntax. ^_^
I suppose the other way would be more consistent though.

As far as documentation goes though, hiera_array() is just as undocumented 
as hiera_include(), which is just as undocumented as the other hiera* 
functions.
http://docs.puppetlabs.com/references/latest/function.html#hiera

On Tuesday, December 18, 2012 10:31:55 AM UTC-8, R.I. Pienaar wrote:
>
>
>
> ----- Original Message ----- 
> > From: "Ellison Marks" <gty...@gmail.com <javascript:>> 
> > To: puppet...@googlegroups.com <javascript:> 
> > Sent: Tuesday, December 18, 2012 6:28:35 PM 
> > Subject: Re: [Puppet Users] early clean exit from module? 
> > 
> > No, it's additive. It will get all the class names from all hierarchy 
> > levels that a host maps to. It uses almost the same code as 
> > hiera_array(), (also undocumented XP, it essentially builds an array 
> > out of all the elements in the specified variable at all levels of 
> > the hierarchy matching the host), then just calls include on the 
> > elements in the resulting list. 
>
> I think it's not documented cos in recent versions of puppet its not 
> needed 
> you can do include(hiera_array("classes")) or whatever, older puppet - ie 
> when hiera was first written - had a bug with array input to the include 
> function. 
>
>
> > 
> > On Tuesday, December 18, 2012 10:20:21 AM UTC-8, Philip Brown wrote: 
> > 
> > 
> > 
> > On Tuesday, December 18, 2012 9:33:13 AM UTC-8, Ellison Marks wrote: 
> > 
> > You're looking for the hiera_include() function, I believe. It's 
> > undocumented in the official docs, which is a shame, but I'll try to 
> > describe it. 
> > 
> > Your node definition would look something like this: 
> > 
> > node default { 
> > hiera_include('classes') 
> > } 
> > 
> > This instructs every node to look up the classes variable in hiera. 
> > It doesn't need to be named classes, but I like that name. This 
> > variable should evaluate to a list of strings. Each of these strings 
> > will then be treated as a class name and puppet will attempt to 
> > 'include' it. You make your hierarchy so that each node gets an 
> > appropriate list. 
> > 
> > 
> > 
> > 
> > Hmm. Thanks for the explanation. It sounds *potentially* useful. 
> > However, still one problem: 
> > I dont think it's additive. 
> > 
> > In other words, you cant have a truly modular flow in hiera, where 
> > you have 
> > the following pseudocode 
> > 
> > $(allhosts ) => gets 'classes' list from common.yaml 
> > 
> > $(dbmachines) => gets additional classes from dbhosts.yaml 
> > 
> > $(webmachines) => gets additional classes from webhosts.yaml 
> > 
> > 
> > If you want a host that is both a db machine, AND a webserver, you 
> > need to create a new hiera file, 
> > dbandwebhost.yaml 
> > and then make sure that all machines in that context, get pointed to 
> > that specific file, rather than getting to merge things. 
> > 
> > 
> > The only method I see that uses the "pure" hiera_include method you 
> > show above, and still allows for mix-and-max class includes, would 
> > be to handcraft individual 
> > 
> > FQDN.yaml 
> > 
> > files for each and every host. ? 
> > 
> > 
> > 
> > 
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Puppet Users" group. 
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msg/puppet-users/-/Vx2_K8OIbREJ . 
> > To post to this group, send email to 
> > puppet...@googlegroups.com<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > puppet-users...@googlegroups.com <javascript:>. 
> > For more options, visit this group at 
> > http://groups.google.com/group/puppet-users?hl=en. 
> > 
> > No, it's additive. It will get all the class names from all hierarchy 
> > levels that a host maps to. It uses almost the same code as 
> > hiera_array(), 
> > (also undocumented XP, it essentially builds an array out of all the 
> > elements in the specified variable at all levels of the hierarchy 
> > matching 
> > the host), then just calls include on the elements in the resulting 
> > list. 
> > 
> > On Tuesday, December 18, 2012 10:20:21 AM UTC-8, Philip Brown wrote: 
> > > 
> > > 
> > > 
> > > On Tuesday, December 18, 2012 9:33:13 AM UTC-8, Ellison Marks 
> > > wrote: 
> > >> 
> > >> You're looking for the hiera_include() function, I believe. It's 
> > >> undocumented in the official docs, which is a shame, but I'll try 
> > >> to 
> > >> describe it. 
> > >> 
> > >> Your node definition would look something like this: 
> > >> 
> > >> node default { 
> > >>   hiera_include('classes') 
> > >> } 
> > >> 
> > >> This instructs every node to look up the classes variable in 
> > >> hiera. It 
> > >> doesn't *need* to be named classes, but I like that name. This 
> > >> variable 
> > >> should evaluate to a list of strings. Each of these strings will 
> > >> then be 
> > >> treated as a class name and puppet will attempt to 'include' it. 
> > >> You make 
> > >> your hierarchy so that each node gets an appropriate list. 
> > >> 
> > >> 
> > >> 
> > > 
> > > Hmm. Thanks for the explanation. It sounds *potentially* useful. 
> > > However, 
> > > still one problem: 
> > > I dont think it's additive. 
> > > 
> > > In other words, you cant have a truly modular flow in hiera, where 
> > > you have 
> > > the following pseudocode 
> > > 
> > > $(allhosts )  => gets 'classes' list from common.yaml 
> > > 
> > > $(dbmachines)  => gets additional classes from dbhosts.yaml 
> > > 
> > > $(webmachines) => gets additional classes from webhosts.yaml 
> > > 
> > > 
> > > If you want a host that is both a db machine, AND a webserver, you 
> > > need to 
> > > create a new hiera file, 
> > > dbandwebhost.yaml 
> > > and then make sure that all machines in that context, get pointed 
> > > to that 
> > > specific file, rather than getting to merge things. 
> > > 
> > > 
> > > The only method I see that uses the "pure" hiera_include method you 
> > > show 
> > > above, and still allows for mix-and-max class includes, would be to 
> > > handcraft individual 
> > > 
> > > FQDN.yaml 
> > > 
> > > files for each and every host.  ? 
> > > 
> > > 
> > > 
> > > 
> > > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Puppet Users" group. 
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msg/puppet-users/-/Vx2_K8OIbREJ. 
> > To post to this group, send email to 
> > puppet...@googlegroups.com<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > puppet-users...@googlegroups.com <javascript:>. 
> > For more options, visit this group at 
> > http://groups.google.com/group/puppet-users?hl=en. 
> > 
> > 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/4xffOwEQjwoJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to