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
install Hiera (with gem install hiera) and make the following configuration

- 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 [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Search Discussions

Discussion Posts

Follow ups

Related Discussions

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



site design / logo © 2023 Grokbase