(inline)

On Thu, Mar 01, 2018 at 11:36:40PM +0100, Henrik Lindberg wrote:
> On 01/03/18 16:03, Christopher Wood wrote:
> > As background, for "reasons" I am looking at individual domains in hiera as 
> > keys. I do have questions beyond "why would I even".
> > 
> > A) hiera lookup key format
> > 
> > I notice that if I use puppet lookup to test things I get similar behaviour 
> > as using lookup() from a manifest, a key with dots in it is truncated. 
> > Notice how the node hierarchy understand the key as "www" below(1). I could 
> > just use underscores but I'd rather understand what was going on first.
> > 
> 
> A '.' is an operator that "digs" into a data structure. If you are looking
> up the key "foo", and it results in a hash, and this hash has a key "bar",
> you can get its value by looking up "foo.bar".
> 
> You can quote the period to make it a verbatim period char. For example by
> looking up "'foo.bar'", or "foo'.'bar" would lookup the entire key including
> the period.
> 
> The '%' char has special meaning.
> 
> > Is there a list of permitted characters in a hiera key lookup?
> > 
> You should read up on the hiera documentation to get all the details.
> It is on puppet's documentation site.

Yes it's all right there in front of me. *facepalm*

For posterity, I had missed this bit:

https://puppet.com/docs/puppet/5.4/hiera_automatic.html#access-hash-and-array-elements-using-a-keysubkey-notation

> > B) hierarchy interpolation
> > 
> > https://puppet.com/docs/puppet/5.4/hiera_intro.html#hierarchies-interpolate-variables
> > 
> > Is there anything else a hierarchy can interpolate? I'm thinking it would 
> > be easier to explain to people that 'www.boitc.test' information was listed 
> > under hieradata/domains/www.boitc.test.yaml rather than in the longer 
> > hieradata/domains.yaml.
> > 
> > Failing that, is it future-proof to use $title in a hierarchy in the same 
> > manner as $classname seems sometimes used?
> > 
> 
> That is not a good design, it makes keys have different value depending from
> where they are looked up. In addition it forces hiera to have to evict the
> caches so it is bad for performance as well.

I had not realized that, it's obvious with a night's sleep now.

> Only use top scope variables (for example facts) in your hierarchy.
> 
> > 
> > (1) The lookup that is misunderstood in the environment data provider.
> > 
> > puppet lookup --node host.domain.com -d 'www.boitc.test'
> > 
> 
> quote the '.' to make it work
> 
> >    Searching for "www.boitc.test"
> >      Global Data Provider (hiera configuration version 5)
> >        No such key: "www.boitc.test"
> >      Environment Data Provider (hiera configuration version 5)
> >        Using configuration 
> > "/etc/puppetlabs/code/environments/puppetmasters_tls/hiera.yaml"
> >        Hierarchy entry "nodes"
> >          Path 
> > "/etc/puppetlabs/code/environments/puppetmasters_tls/hieradata/nodes/host.domain.com.eyaml"
> >            Original path: "nodes/%{::trusted.certname}.eyaml"
> >            No such key: "www"
> > 
> > 
> 
> - henrik
> -- 
> 
> Visit my Blog "Puppet on the Edge"
> http://puppet-on-the-edge.blogspot.se/
> 
> -- 
> 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/p79v5p%248oe%241%40blaine.gmane.org.
> For more options, visit https://groups.google.com/d/optout.

-- 
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/20180302131141.tbm3sikyaaxpc75d%40iniquitous.heresiarch.ca.
For more options, visit https://groups.google.com/d/optout.

Reply via email to