Skip to content

Make puppet-concat generated Icinga2 config content sorted deterministically

While deploying our monitoring infra, we noticed (see #8648 (closed)) that complex concatenation of fragments using the puppet-concat module is not always consistent. Their ordering is not really reliable, thus ending up in erratic changes in the resulting file.

Currently it seems that the two fragments that are badly sorted, are because their name is quite close:

200_zone_apt.lizard and 200_zone_apt-proxy.lizard as well as 200_endpoint_apt.lizard_apt.lizard and 200_endpoint_apt-proxy.lizard_apt-proxy.lizard

Sorting of fragments seems to have a long history of issues in this module (see https://github.com/puppetlabs/puppetlabs-concat/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+sort) and the current module version we’re using is a bit old (commit somewhere between 0.1.0 and 0.2.0).

Might very well be that this bug has already been resolved, so an upgrade would help. Still, this module had a lot of changes, and some rewrites, so we should first see which version solves this issue (if any) and which version our modules that depend on it requires.

Related issues

Original created by @bertagaz on 11242 (Redmine)

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information