Note: We’ve released a major update to Hiera called Hiera 5.
Hiera 5 is built into Puppet 4.9 and higher, and includes features like per-environment hierarchies, module data, simplified custom backends, improved debugging with
puppet lookup --explain
, and more.As part of this update, we’ve moved Hiera’s documentation into the Puppet reference manual. Once you’ve upgraded to Puppet 4.9 or higher, see the following pages for more info about the new Hiera:
Released June 10, 2014.
Hiera 1.3.4 is a security fix release in the Hiera 1.3 series. It has no other bug fixes or new features.
Platforms running Ruby 1.9.1 or earlier would load Ruby source files from the current working directory during a Hiera lookup. This could lead to the execution of arbitrary code.
Released May 22, 2014.
Hiera 1.3.3 is a backward-compatible performance and fixes release in the 1.3 series. It provides a substantial speed increase for lookups compared to Hiera 1.3.2. This release also adds support for Ubuntu 14.04 (Trusty Tahr) and discontinues support for Fedora 18 and Ubuntu 13.04 (Raring Ringtail).
Released February 26, 2014. (RC1: February 11; RC2: February 20.)
Hiera 1.3.2 is a bug fix release in the 1.3 series. It adds packages for Red Hat Enterprise Linux 7, support for deploying to Solaris and Windows vCloud instances, and fixes a bug on Debian.
/usr/bin/ruby
, which fixes the issue.recursive_guard
warning if the same variable was interpolated twice in a hierarchy definition, even if the usage was not recursive.Released January 23, 2014. (RC1: December 12, 2013.)
Hiera 1.3.1 is a bug fix release in the 1.3 series. It fixes one bug:
HI-65: Empty YAML files can raise an exception (backported to stable as HI-71)
Released November 21, 2013. (RC1: never published; RC2: November 8, 2013.)
Hiera 1.3.0 contains three new features, including Hiera lookups in interpolation tokens. It also contains bug fixes and packaging improvements.
Most of the features contributed to Hiera 1.3 are intended to provide more power by allowing new kinds of value interpolation.
In addition to interpolating variables into strings, you can now interpolate the value of another Hiera lookup. This uses a new lookup function syntax, which looks like "%{hiera('lookup_key')}"
. See the docs on using interpolation tokens for more details.
Hashes within a data source can now use interpolation tokens in their key names. This is mostly useful for advanced create_resources
tricks. See the docs on interpolating values into data for more details.
This happens automatically and makes CLI results more readable.
Most of these fixes are error handling changes to improve silent or unattributable error messages.
We are now building Hiera packages for Ubuntu Saucy, which previously was unable to use Puppet because a matching Hiera package couldn’t be built. Fedora 17 is no longer supported, and hardcoded hostnames in build_defaults.yaml were removed.
Hiera 1.2.1 contains one bug fix.
Hiera 1.2.0 contains new features and bug fixes.
(#17434) Detect loops in recursive lookup
The recursive lookup functionality was vulnerable to infinite recursion when the values ended up referring to each other. This keeps track of the names that have been seen in order to stop a loop from occurring. The behavior for this was extracted to a class so that it didn’t clutter the logic of variable interpolation. The extracted class also specifically pushes and pops on an internal array in order to limit the amount of garbage created during these operations. This modification should be safe so long a new Hiera::RecursiveLookup is used for every parse that is done and it doesn’t get shared in any manner.
(#17434) Support recursive interpolation
The original code for interpolation had, hidden somewhere in its depths, supported recursive expansion of interpolations. This adds that support back in.