Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-7178

Hiera custom backends cannot find data in other backends using 'hiera' interpolation function

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: PUP 4.9.0
    • Fix Version/s: PUP 4.9.2
    • Component/s: None
    • Labels:
      None
    • Template:
    • Acceptance Criteria:
      Hide

      That a %{hiera('some_key') interpolation used in a custom backend (such as eyaml) will find corresponding data that is provided by some other "backend" that is no longer a classic backend (such as 'json' or 'yaml').

      Show
      That a %{hiera('some_key') interpolation used in a custom backend (such as eyaml) will find corresponding data that is provided by some other "backend" that is no longer a classic backend (such as 'json' or 'yaml').
    • Team:
      Puppet Developer Experience
    • Story Points:
      1
    • Sprint:
      PDE 2017-02-08
    • Release Notes:
      Bug Fix
    • Release Notes Summary:
      Hide
      A regression was introduced by Hiera 5 where an interpolation using the functions {{hiera}}, {{lookup}}, or {{alias}} would only be able to find keys from the same kind of backend. This affected users with a mix of yaml, json and/or eyaml entries in their hierarchies. This is now fixed.
      Show
      A regression was introduced by Hiera 5 where an interpolation using the functions {{hiera}}, {{lookup}}, or {{alias}} would only be able to find keys from the same kind of backend. This affected users with a mix of yaml, json and/or eyaml entries in their hierarchies. This is now fixed.
    • QA Risk Assessment:
      No Action
    • QA Risk Assessment Reason:
      covered by unit tests

      Description

      A hiera custom backend will run under control of classic Hiera. That Hiera is however not fully configured to handled nested lookups using the hiera interpolation function.

      While such nested lookups should be confined to the global layer (since classic Hiera is unaware of environment and module data providers), it must still find all other "backends" in that layer, even if they no longer are classic Hiera backends. This doesn't happen today, which means that a

      %{hiera('some_key')}
      

      where 'some_key' appoints something from another data provider will fail.

        Attachments

          Activity

            People

            Assignee:
            Unassigned
            Reporter:
            thomas.hallgren Thomas Hallgren
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Zendesk Support