Add a spec for in tree upgrade tests
blueprint upgrade-tests Change-Id: I5f6b896e4a35b4b47db53b117ce947938a46c2dd
This commit is contained in:
parent
ec92fcfc6f
commit
382bd18da0
|
@ -0,0 +1,101 @@
|
||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
..
|
||||||
|
This template should be in ReSTructured text. The filename in the git
|
||||||
|
repository should match the launchpad URL, for example a URL of
|
||||||
|
https://blueprints.launchpad.net/heat/+spec/awesome-thing should be named
|
||||||
|
awesome-thing.rst . Please do not delete any of the sections in this
|
||||||
|
template. If you have nothing to say for a whole section, just write: None
|
||||||
|
For help with syntax, see http://sphinx-doc.org/rest.html
|
||||||
|
To test out your formatting, see http://www.tele3.cz/jbar/rest/rest.html
|
||||||
|
|
||||||
|
==================
|
||||||
|
Heat Upgrade Tests
|
||||||
|
==================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/heat/+spec/upgrade-tests
|
||||||
|
|
||||||
|
The new direction of the grenade project is to use devstack-style
|
||||||
|
plugins to support upgrade testing. This spec aims to get upgrade
|
||||||
|
testing infrastructure in Heat's tree.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
Currently, there aren't any tests that check if a patch in-review
|
||||||
|
would break the upgrade of Heat from a previous release.
|
||||||
|
|
||||||
|
Some of the issues a deployer may face during or post upgrade are as follows:
|
||||||
|
|
||||||
|
- The deployed database not successfully migrating to the newest schema.
|
||||||
|
- Stacks created in an older release not updatable/deletable in new release.
|
||||||
|
A change in the update/delete workflow may render existing stacks useless
|
||||||
|
or be in an IN_PROGRESS state forever.
|
||||||
|
- Physical resources disappearing when the control plane is taken down.
|
||||||
|
- Configuration options removed prematurely without notice.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Get upgrade testing in-tree by using grenade's external plugin mechanism.
|
||||||
|
The upgrade tests should follow what grenade calls the Theory of Upgrade
|
||||||
|
- https://github.com/openstack-dev/grenade#theory-of-upgrade
|
||||||
|
|
||||||
|
To ease developers writing upgrade tests, we will have
|
||||||
|
(pre/during/post)-upgrade tox envs that will run tests
|
||||||
|
respectively during the (pre/during/post)-upgrade phases
|
||||||
|
in grenade.
|
||||||
|
|
||||||
|
As an example, the pre-upgrade phase will create stacks before an
|
||||||
|
upgrade. The during-upgrade phase will check if the resources created by a
|
||||||
|
stack are still alive even when heat's services are down. The post-upgrade
|
||||||
|
phase could update/delete these stacks to verify that those old stacks are
|
||||||
|
still operable.
|
||||||
|
|
||||||
|
Once this infrastructure is in place, we should be able to add support
|
||||||
|
for rolling upgrades of heat-engine with the help of the existing versioned
|
||||||
|
objects mechanism in Heat. This will use Grenade's partial-upgrade strategy
|
||||||
|
similar to what is being done for Nova.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
sirushtim
|
||||||
|
|
||||||
|
Milestones
|
||||||
|
----------
|
||||||
|
|
||||||
|
Target Milestone for completion:
|
||||||
|
liberty-2
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
- In-tree grenade testing.
|
||||||
|
- Project config changes to add voting grenade job.
|
||||||
|
- Tag smoke tests in heat_integrationtests that must be run during the
|
||||||
|
grenade sanity-check(verify) phase.
|
||||||
|
- pre/during/post-env env sections in tox that will respectively invoke
|
||||||
|
the tests before, during and after the upgrade of Heat.
|
||||||
|
- Get devstack to use the system level heat binaries instead of the ones
|
||||||
|
in the repository to emulate what a user would face when upgrading heat.
|
||||||
|
- Add Upgrade Impact section to heat-specs.
|
||||||
|
- Support rolling upgrade of heat-engine.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
Grenade external plugin mechanism https://review.openstack.org/#/c/185050
|
Loading…
Reference in New Issue