Grenade Upgrade Testing

Registered by Eoghan Glynn on 2014-05-20

The Technical Committee is currently in the process of adding upgrade testing expectations to the requirements for newly integrated projects:

  https://review.openstack.org/87234

As a project, we have agreed that this requirement should apply retrospectively to ceilometer, so we need to start participating in the grenade upgrade testing harness.

Since ceilometer did not have meaningful coverage in tempest over the Grizzly and Havana cycles, it would suffice to assert upgrades from Icehouse to Juno.

The purpose would be to assert:

1. successful application of migration scripts on a non-empty metering store (in the sql-alchemy case)
2. forward compatibility of configuration artifacts (ceilometer.conf and pipeline.yaml)
3. tolerance of resources having survived through the upgrade process

Points #1 and #2 can be addressed through the usual cycle of install-old/run-tempest/stop-old/upgrade-to-new/rerun-tempest. This would require the addition of an upgrade-ceilometer.sh driver script to the top-level directory in:

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

calling out to this driver script at the appropriate point in:

  https://github.com/openstack-dev/grenade/blob/master/grenade.sh

and possibly also the specialization of icehouse-specifics in:

  https://github.com/openstack-dev/grenade/tree/master/from-icehouse/upgrade-ceilometer.sh

The purpose of the former script is to stop all ceilometer services, upgrade the ceilometer & python-ceilometerclient git repos, apply the database migration and restart the services.

Looking forward, it would be useful to also make assertions about resource survivability from a ceilometer PoV. The resources intended to survive the upgrade are created within the javelin project :

  https://github.com/openstack-dev/grenade/blob/master/setup-javelin

The obvious ceilometer-specific assertion would be to ensure that a statistics and/or samples query may be submitted the ceilometer-api service constrained by the javelin project ID and a time duration that spans the upgrade. Currently there is no way of making such service-specific assertions about the javelin resources, so this would require an extension to the capabilities of the grenade framework.

Blueprint information

Status:
Complete
Approver:
None
Priority:
High
Drafter:
Eoghan Glynn
Direction:
Approved
Assignee:
Emilien Macchi
Definition:
Approved
Series goal:
Accepted for juno
Implementation:
Implemented
Milestone target:
milestone icon 2014.2
Started by
Eoghan Glynn on 2014-05-29
Completed by
Eoghan Glynn on 2014-06-10

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:telemetry-support,n,z

Addressed by: https://review.openstack.org/94468
    Support Ceilometer services

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.