The goal of this is to gather knowledge about how Foreman users use Puppet. In particular around the ENC.
This area hasn’t seen many updates in a long time and especially the UI needs some love. It was originally designed way back in the Puppet 0.25 days with improvements along the way. In particular around Puppet 2.6 when it became possible to set class parameters via the ENC. In Puppet land things also evolved and Puppet 3 included Hiera but Foreman stopped evolving its integration. Puppet has reached version 6 so it’s time to see if we need to rethink things.
The questions are strongly focused around the ENC because that’s the area I’m considering. Managing the content can be relevant but not my current focus.
Assigning classes to nodes
How do you assign classes to your nodes?
Within Foreman hosts can end up with classes from multiple sources (directly, via host groups, config groups). All of these count as the ENC.
Another common way is to set a classes array in Hiera and include those via (for example)
It’s also possible to hardcode node class assignment in
Some may have a hybrid approach so it’s multiple choice.
- Foreman as ENC
- Puppet manifests
Setting class parameters
Do you set class parameters via Foreman?
- No, Foreman isn’t assigning classes
- No, Foreman assigns classes but parameters are set via Hiera
A lot of these situations require nuance and a simple multiple choice question isn’t enough. Since this is a forum, it’s highly encouraged to describe how you currently work and how you’d like to work.
Note that this is in the community section because I’d like to avoid turning this into a developer discussion talking about specific implementations. Implementations come at a later stage if we decide changes are needed.
It’s also encouraged to mention how other tools solve a problem better than Foreman. The goal is to find out what users think, like and dislike. The why question is the most important because it helps to understand users, their use cases and the problems they want to solve.