jclouds/jclouds — pull request #1386 by nacx (2013-03-06 17:29:19+00:00)
Title: Flexible Rubygems and Chef installation

Recently we have experienced several issues when bootstrapping nodes with Chef, due to changes in the dependencies of the Chef gems. Also, as long as new versions of the Chef gems are published, we can not predict if they will break older versions of jclouds.

Although the code in jclouds remained unchanged, our scripts to install RubyGems and Chef forced the installation of the latest versions of both, so there was no way to prevent erros caused by new versions of the gems.

This commit creates a flexible `InstallRubyGems'` statement allowing users to specify the concrete version of RubyGems to be installed, and also customize if the system and the existing gems should be upgraded after installing.

It also modifies the `InstallChefGems` script (used in `ChefSolo` too) to allow users to specify the version of the Chef gem to install.

Once this is merged, a PR to add [this commit](https://github.com/nacx/jclouds-chef/commit/dc5aa6f510523281100d0dcec6de2ead405cb16b) will be opened to the jclouds-chef repository, to allow users to configure all these bootstrap configuration using context properties. This way, users will be able to avoid bootstrap errors due to gem dependencies, etc, by configuring the appropriate versions when creating the Chef context.