To manage puppet modules on a per project basis in a simple fashion.
Pretty much a carbon copy of how bundler + rubygems works in ruby projects.
Make use of a puppet module flavoured Gemfile
see below for example
bundle install --path modules
Some duck punching is needed for this to work.
Without duck punching this installs the modules in to modules/ruby/1.8/bundler/gems/puppetlabs-stdlib-11156fd29a6c
I have applied my nasty hacks inline to my fork of bundler
@rodjek is working on a neater set of bundler dsl extensions to do the same. bundler-puppet aka pundler
A test puppet appliance is available for testing this POC out.
- remove / move cache dir from modules/
- detect if module already exists and prompt to overwrite / update via git
- allow Gemfile to include a mix of puppet modules + rubygems and detect the different types