parameterizing configuration: where do you draw the line?
I would like to post this here as I have had a few interesting discussions around this.
This of course differs based on application but I have come across a lot of applications where at some point this becomes a moot point. I can take as an example HAproxy.
So I have created a custom config somewhat beyond simple that does a few different things. I am of the mind that there comes a point where it serves no value to me to translate this config to puppet. I would need to create perhaps hundreds of parameters with templates that use loops and decision structures. This considerably increases the work for me probably by a factor of 2-3x if not more. So I would prefer to make my changes directly in the file.
This introduces another dilemma moreso for new folks. They have to learn the application, but considering we choose to create this complex module, they also have to learn how the module is setup. I would rather they learn the application well.
However, I know there are several people who would rather put in the time to create such modules, however time consuming this venture would be. As an example, I look at this module https://forge.puppet.com/puppetlabs/h... It is definitely well made and documented and covers MANY scenarios but it still does not serve my exact purpose.
So back to the question: where do you draw the line?