hiera merge lookup/alias of array defined at multiple levels

475 views
Skip to first unread message

Mark Dixon

unread,
Sep 2, 2021, 1:30:37 PM9/2/21
to Puppet Users

Hi there,

I'd like to do a simple merge lookup of an array within a hiera yaml file. At the moment I seem to be getting the array from the hiera location that "wins", and not a merged version.

I guess it's not possible, perhaps due to possible circular dependencies, etc. Is that right, please?

Thanks,

Mark

e.g.

one_file_in_hiera_path.yaml:
"""
an_array:
- one
"""

another_file_in_hiera_path.yaml:
"""
an_array:
- two
"""

yet_another_file_in_hiera_path.yaml:
"""
merged_array_attempt1: "%{alias('an_array')}"

merged_array_attempt2: "%{lookup('an_array')}"
"""

Neither merged_array_attempt1 or merged_array_attempt2 returns the merged array, just the definition in one of the files.

Dirk Heinrichs

unread,
Sep 3, 2021, 1:28:03 AM9/3/21
to puppet...@googlegroups.com
Am Donnerstag, dem 02.09.2021 um 08:46 -0700 schrieb Mark Dixon:

I'd like to do a simple merge lookup of an array within a hiera yaml file. At the moment I seem to be getting the array from the hiera location that "wins", and not a merged version.

You need to tell hiera to do so, probably in your common.yaml, by specifying "lookup_options":

---
lookup_options:
  an_array:
    merge: unique

or by specifying the merge behaviour when calling "lookup()", see https://puppet.com/docs/puppet/6/hiera_automatic.html#lookup-merge-behaviors

HTH...

Dirk
-- 
Dirk Heinrichs
Senior Systems Engineer, Delivery Pipeline
OpenText ™ Discovery | Recommind
Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
Vertretungsberechtigte Geschäftsführer Gordon Davies, Madhu Ranganathan, Christian Waida, Registergericht Amtsgericht Bonn, Registernummer HRB 10646
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail sind nicht gestattet.
signature.asc

Mark Dixon

unread,
Sep 3, 2021, 8:43:49 AM9/3/21
to Puppet Users
Hi Dirk,

Thanks so much for that, adding lookup_options in common.yaml worked :)

Ideally I'd like to put the setting as an argument to %{lookup()} or %{alias()} within hiera documents, but they don't seem to support that.

All the best,

Mark
Reply all
Reply to author
Forward
0 new messages