Hiera 1: Release Notes

Included in Puppet Enterprise 3.8. A newer version is available; see the version menu above for details.

Note: We’ve released a major update to Hiera called Hiera 5.

It’s 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:

Hiera 1.3.4

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.

Security Fix

CVE-2014-3248 (An attacker could convince an administrator to unknowingly execute malicious code on platforms with Ruby 1.9.1 and earlier)

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.

Hiera 1.3.3

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).

Performance Improvements

  • HI-239: Backport speed improvement to 1.3.x codebase, resulting in a substantial speed increase in lookups compared to Hiera 1.3.2.

Operating System Support

  • HI-149: Remove Fedora 18 from default build targets
  • HI-236: Remove Raring (Ubuntu 13.04) from build_defaults, it is EOL
  • HI-185: Add Trusty (Ubuntu 14.04) support

Bug Fixes

  • HI-232: Hiera should conflict/provide/replace ruby-hiera (from Ubuntu)

Hiera 1.3.2

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.

RHEL 7 Support

  • HI-179: Add RHEL 7 support for Hiera packaging.

Bug Fixes

  • HI-176: Hiera would fail to find the correct ruby binary on Debian when an alternative version was installed. Hiera now uses /usr/bin/ruby, which fixes the issue.
  • HI-178: Acceptance tests have been added for Solaris and Windows vCloud machines.
  • HI-115: Hiera would show an incorrect recursive_guard warning if the same variable was interpolated twice in a hierarchy definition, even if the usage was not recursive.

Hiera 1.3.1

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)

Hiera 1.3.0

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.

Feature: Hiera Sub-Lookups from Within Interpolation Tokens

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.

  • Feature #21367: Add support for a hiera variable syntax which interpolates data by performing a hiera lookup

Feature: Values Can Now Be Interpolated Into Hash Keys

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.

Feature: Pretty-Print Arrays and Hashes on Command Line

This happens automatically and makes CLI results more readable.

Bug Fixes

Most of these fixes are error handling changes to improve silent or unattributable error messages.

  • Bug #17094: hiera can end up in and endless loop with malformed lookup variables
  • Bug #20519: small fix in hiera/filecache.rb
  • Bug #20645: syntax error cause nil
  • Bug #21669: Hiera.yaml will not interpolate variables if datadir is specified as an array
  • Bug #22777: YAML and JSON backends swallow errors
  • Feature #21211: Hiera crashes with an unfriendly error if it doesn’t have permission to read a yaml file

Build/Packaging Fixes and Improvements

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

Hiera 1.2.1 contains one bug fix.

Hiera 1.2.0

Hiera 1.2.0 contains new features and bug fixes.

Features

  • Deep-merge feature for hash merge lookups. See the section of this manual on hash merge lookups for details.
  • (#16644) New generic file cache. This expands performance improvements in the YAML backend to cover the JSON backend, and is relevant to those who write custom backends. It is implemented in the Hiera::Filecache class.
  • (#18718) New logger to handle fallback. Sometimes a logger has been configured, but is not suitable for being used. An example of this is when the puppet logger has been configured, but Hiera is not being used inside Puppet. This adds a FallbackLogger that will choose among the provided loggers for one that is suitable.

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.

↑ Back to top