Refactor #2755
open![Author: Anonymous](/images/anonymous.png?1697023634)
Try refactoring all modules to add a profile-layer abstraction
Description
The Puppet module stack used by the installer etc is in pretty good shape but for wider reuse and adaptation outside of Foreman they need to be less dependent on each other.
This can be done by adding a 'profile' abstraction layer on top of the modules, pulling out any dependencies from the module layer. If we do this each module could be able to work on its own and Foreman could become a great place for others to pick up Puppet modules that are curated and well maintained. A win for all.
For those not familiar with the roles and profiles pattern -> http://www.youtube.com/watch?v=ZpHtOnlSGNY
I plan on starting a proof-of-concept refactor this fall to try and show how this could be done. Anyone willing to help please speak up :-)
Updated by Drew Blessing almost 11 years ago
I completely agree. For anyone with a semi-mature or Puppet environment that's been around for a while it is impossible to fit the Foreman installer modules in. This should be easier.
Updated by Ewoud Kohl van Wijngaarden almost 11 years ago
- Description updated (diff)
We've talked about this on IRC and this is sort of related to the installer. It would be great if we had some sort of standard roles we could deploy (all-in-one, smartproxy+puppet+dhcp+tftp,smartproxy+dns). I'm very interested in what you can come up with because making it less dependent on each other is something I've run into as well. For one, I'm working on replacing our puppet-apache with puppetlabs-apache so we more easily integrate in existing environments. Also had a discussion about puppet-puppet depending on puppet-foreman. Feel free to drop by on IRC :)