As a courtesy update for our user community:

My earlier claims about the "lookup" function were exaggerated. Instead,
the "hiera", "hiera_array", and "hiera_hash" functions will all be
available, provided by Hiera.

Also, as mentioned earlier, class parameters will be sourced from multiple
locations, with the following priorities:
- Hardcoded in the manifest (e.g. class { "foo": bar => "baz" })
- Supplied by an ENC
- Automatic namespaced data lookup in Hiera
- Class-specified default value

Feel free to ask if you have any further questions.

- Pieter
On Thu, May 3, 2012 at 10:05 AM, Pieter van de Bruggen wrote:


As many of you may be aware, Hiera will be tightly integrated into Puppet
in the upcoming release of Puppet 3.0. As a final sanity check of this
work, I’d like to open our current plan for integration up for feedback.
This is particularly for feedback from existing Hiera users, but I hope to
solicit good feedback from those not using Hiera as well.

The problem, as it currently exists, is that Puppet (core) has no good
first-class mechanism for separating configuration data from manifests.
Everything from $faked_namespaces__in__variable_names to specialty
“params” classes have been tried, with varying degrees of success.

Hiera came along as another solution to this problem, and provided a
useful abstraction for hierarchical data lookup, but life as a plugin meant
that certain integrations were still difficult. Our aim in Puppet 3.0 is to
tighten up these integrations (making Hiera more useful), provide
first-class data separation solution (for those not already using Hiera),
and to provide a simple and safe migration for those currently using Hiera.

Here’s what’s new:

- Hiera data keys can be namespaced
- (e.g. 'dns::nameserver': '')
- Namespaced data will automatically populate class parameters
- (e.g. 'dns::nameserver' will be automatically looked up for the
$nameserver parameter when you include dns)

Here’s what’s changed:

- The hiera-puppet module will no longer be required
- It should, however, still continue to work
- The heira() function (from the hiera-puppet module) will be
superceded by the lookup() function (in Puppet core)
- hiera_include() will not be ported; include now properly accept
arrays, making this redundant

Here’s what were still wondering about:

- How should we integrate hiera_array() and hiera_hash()?
- How should we integrate hiera’s “default” and “override” parameters?
- How should we handle overlaps between data supplied by Hiera and
data supplied in a parameterized class include?

If you’re interested in test-driving the new functionality for yourself,
checkout out the master branch of the Puppet repository on Github<https://github.com/puppetlabs/puppet>,
install Hiera (with gem install hiera) and make the following
configuration changes:

- Set data_binding_terminus to hiera
- If you have a Hiera configuration file, set hiera_config to point to
- If you don’t, create a file in ${confdir}/hiera.yaml with these


- yaml


:datadir: $confdir/data


- %{certname}

- %{environment}

- global

This sets up a default hierarchy that looks for values in ${confdir}/data,
first in the ${certname}.yml file, then in the ${environment}.yml file,
then in global.yml.

That should be it! Please, let us know if you're having trouble getting
started, or if you have questions, concerns, thoughts, or opinions about
any of this.

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

Search Discussions

Discussion Posts


Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 25 of 25 | next ›
Discussion Overview
grouppuppet-users @
postedMay 3, '12 at 6:33p
activeMay 8, '12 at 10:01p



site design / logo © 2022 Grokbase