Isso é por design no Puppet 3.0.1.
If bundler is loaded, e.g. bundler exec puppet, then don’t load rubygems, since bundler has its own logic for managing gems in the current application environment. And the set of gems, versions, etc is often different than what gems you may have installed, via rvm for example.
If bundler is not loaded, fall back on the old behavior, which is to ensure rubygems is loaded before calling any puppet code. Ideally, this should be done in the bin/puppet script, however, that doesn’t work for rack setups, so we moved rubygems loading to the command line code, which is effectively the puppet application entry point.
Several features, e.g. stomp, were calling Puppet.features.rubygems? only for its side-effect of loading rubygems before evaluating the calling feature’s gems. This is no longer necessary now that we ensure the gem loading system is sane early on.
Custom features may be calling Puppet.features.rubygems?, so we’ve added a deprecation warning and preserved the old behavior (of explicitly requiring rubygems). It may be necessary to modify custom features in order to ensure puppet works correctly in a bundler environment.
Se você atualizou seu puppetmaster para a versão 3.0.1, você também deve atualizar todos os seus agentes de marionetes. Ou vice-versa.