Grenade

= What is Grenade? =

Grenade is a test harness to exercise the OpenStack upgrade process between releases. It uses DevStack to perform the initial OpenStack install and then walks through upgrading each enabled project.

= Using Grenade =

At present the README in the source has the steps to try out Grenade.

It is strongly recommended that Grenade be run in a VM. To that end the  install script is written to perform the initial checkout on a target VM and copy and modify the local configuration files for DevStack for the target environment. Further changes can be made at this point before running  if desired.

Also, hypervisors/clouds with VM snapshot capabilities are quite valuable in developing/debugging the upgrade process to avoid re-running the entire setup and initial DevStack run.

= Code =

Grenade is hosted in the Openstack Development repo on GitHub. Contributions can be made through the standard OpenStack gerrit process (see: Development Workflow) to the openstack-dev/grenade project.


 * https://github.com/openstack-dev/grenade

Branches
Specific branches will be maintained for release combinations that match the regular OpenStack releases. For example, the first maintained branch will be for the Essex -> Folsom upgrade path. Trunk will always be maintained for $LAST_RELEASE -> trunk upgrades.

Upgrades
Grenade uses a series of  scripts to perform the actual steps to upgrade each component. These scripts can be run independently and must silently handle repeated runs.

Outline

 * kill running processes
 * source TRUNK_DEVSTACK stackrc
 * set up configuration vars and files
 * get current trunk source (git_clone)
 * configure source (setup_develop)
 * do upgrade changes
 * run *-manage db_sync as necessary
 * start processes

= TODO =

Things remaining to be done include:


 * completing the upgrade steps for each project
 * fleshing out the Javelin sample project created to test data conversion
 * writing tests to verify Javelin data

= Glossary =


 * FINAL_RELEASE - The target release for the upgrade
 * START_RELEASE - The initial release in the upgrade path

= Miscellaneous =

Grenade is released under an Apache 2.0 license.