FAQ
During DevOpsDays it was brought up that there may be a patch for ordered
hashes with Hiera. Without this patch, all of my catalogs are compiled in
random order. Any links to a patch that I can back-port, or a commit #?

--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/mUlI7F7GuJAJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Search Discussions

  • Jcbollinger at Jul 3, 2012 at 7:50 pm

    On Monday, July 2, 2012 3:42:34 PM UTC-5, Jeremy Carroll wrote:
    During DevOpsDays it was brought up that there may be a patch for ordered
    hashes with Hiera. Without this patch, all of my catalogs are compiled in
    random order. Any links to a patch that I can back-port, or a commit #?

    I know nothing about the Hiera modifications you are asking about, but I
    would like to suggest that you consider writing classes so that they are
    insensitive to the order they are declared. A manifest set written in this
    way is much more resilient and easier to maintain than one that requires *
    you* to find a suitable order in which to declare classes. It's good no
    matter what mechanism you use to declare classes (direct, hiera, ENC, ...).

    This is entirely possible -- not even all that hard -- provided that you
    avoid the parametrized-class syntax for declaring classes, and instead use
    good old 'include' (or 'require'). You must also avoid constructs that are
    inherently parse-order dependent, most notably using the 'defined' function
    to determine whether a class has been declared for the target node. Then
    have every class start by 'include'ing each other class on which it has
    direct parse-order dependencies, and you should be good to go.

    Avoiding parametrized-class declaration syntax has always been a good
    idea. Even if using external data (e.g. from hiera) were not a technically
    superior design, Puppet's parametrized class declaration syntax has serious
    technical problems attending it (not least that it does not in general
    allow classes to declare their dependencies). Puppet 3 ties class
    parameters to hiera, which provides a way forward for shops that have
    invested heavily in class parametrization. It also has documentary and
    convenience advantages.


    John

    --
    You received this message because you are subscribed to the Google Groups "Puppet Users" group.
    To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/J8-qmX1ZPFwJ.
    To post to this group, send email to puppet-users@googlegroups.com.
    To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com.
    For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppuppet-users @
categoriespuppet
postedJul 2, '12 at 8:42p
activeJul 3, '12 at 7:50p
posts2
users2
websitepuppetlabs.com

2 users in discussion

Jeremy Carroll: 1 post Jcbollinger: 1 post

People

Translate

site design / logo © 2022 Grokbase