I'm attempting to design our Puppet workflow, and one concern I have with the workflows as described at http://garylarizza.com/blog/2015/11/16/workflows-evolved-even-besterer-practices/ is that module versions are global. i.e. if one particular service (i.e. profile) requires an updated version of e.g. the Apache forge module, that is a global change that has to be applied to all services. This means that all profiles have to be tested and validated against the upgraded version before it can be changed.
I'm considering a workflow that has one puppet (i.e. r10k) environment per service/profile. This would lead to a lot of environments, but isolates the module dependencies, so each service/profile can use the exact dependencies it wants.
This seems a bit like an abuse of the concept of environments as described at https://docs.puppet.com/puppet/4.5/reference/environments_suggestions.html but would be one solution to this problem.
Has anyone tried this, or have any recommendations of other ways to solve the problem?
↧