On August 22, 2013 RightScale released a massive Chef redesign to its Dashboard and API, which aims to make Chef cookbook and repository integration cleaner and more standardized. This new implementation allows us to specify separate cookbooks from separate repositories, which can in turn be attached to ServerTemplates.
As it turns out, this Chef update also removed the 'RepoPath' RightScale construct since it is no longer needed. Additionally, this also removed repository 'ordering' from the RepoPath, as well as from the ServerTemplate. For customers who were using Chef Overrides (explained in the Override Chef Cookbooks page), the lack of repository ordering means this option is no longer available or needed, and your custom cookbooks should be refactored going forward to provide any custom changes to existing cookbooks.
This article aims to answer some common questions or address some concerns that you may have over this update and the deprecation of the override feature.
As mentioned above, the RepoPath object was deprecated from the RightScale Dashboard in the August 22, 2013. It was previously used as a construct for selecting the desired cookbook when a ServerTemplate was leveraging cookbooks from multiple software repositories. As a result, you can no longer do cookbook overrides using the RepoPath object.
Check the repository that contains the original (source) cookbooks to determine if an override was used. If you are uncertain if you were using an override, then there really isn't a need to worry too much about it. In general, if you had followed the directions on the Override Chef Cookbooks page to implement a customized change to a cookbook, then you were using an override before the update went live.
During the August 22 update, RightScale performed a differential between your customized cookbooks and the stock cookbooks, as defined by your ServerTemplate's RepoPath object and merged your customized changes into a single new cookbook within your RightScale account. This cookbook stayed attached to your ServerTemplate, so even after the update, existing servers will continue to launch successfully and no additional end user changes are necessary. Any new servers added from your ServerTemplate will also continue to launch successfully.
However, it's important to know that the 'merged' cookbook (that was created during the release as a one-time migration effort) has no repository associated with it, so it is a 'floating' but static cookbook. That being said, there is no 'source' for the cookbook data that can be edited easily, so making changes going forward will require some cookbook refactoring.
RightScale is constantly improving its Chef integration and functionality to more closely align with standard development workflows in the Chef community and improve overall usability of cookbooks within the RightScale platform. We've found that most users prefer to only attach the cookbooks that are using in a ServerTemplate. Previously, when we supported the RepoPath construct, you would attach whole repositories to a ServerTemplate, which resulted in many unrelated cookbooks associated to a ServerTemplate. We believe the new way of associating specific cookbooks to a ServerTemplate will be easier to use and improve cookbook developer workflows, especially if you can select cookbooks that are accessible to your account because they were imported into your account (when you imported a ServerTemplate from the MultiCloud Marketplace) or created a Repository object for fetching all cookbooks within a third party repository (e.g. GitHub). But it's important to remember that you are still able to make the same types of modifications as before the migration, but now you will have to use a slightly different process. See Customize a Chef-based ServerTemplate.
As mentioned previously, there is no source/repository for your custom merged cookbooks within your RightScale account. Because of this, any override customizations that were made prior to the August 22 update will remain in tact in the custom merged cookbook that RightScale created for you. However, no other changes can be made to this cookbook and you must refactor your cookbook changes.
To make additional changes going forward, we recommend that you download the contents of the cookbook from the Dashboard and follow the best practices of using a Chef Wrapper cookbook around RightScale's existing cookbooks. This essentially means you would need to create a second cookbook (in your own repository) that 'wraps' around the stock cookbooks that you wish to modify. This is usually accomplished by using Chef cookbook dependencies as well as 'include' statements to include other recipes from these cookbooks.
Your wrapper cookbook should include any customizations you wish to make to the stock RightScale cookbooks or assets. The metadata in the wrapper cookbook should also depend on the stock RightScale cookbooks, and you should use an include statement to include any of the stock recipes as needed.
For more specific information, please see Customize a Chef-based ServerTemplate, which includes details for customizing a ServerTemplate to utilize wrapper cookbooks for customization.
© 2006-2014 RightScale, Inc. All rights reserved.
RightScale is a registered trademark of RightScale, Inc. All other products and services may be trademarks or servicemarks of their respective owners.