Grenade Upgrade Testing - Phase 1

https://blueprints.launchpad.net/ceilometer/+spec/grenade-upgrade-testing

Integrated projects are required to participate in the grenade upgrade testing harness. Ceilometer was integrated before these requirements were added but the requirements apply retroactively. Therefore, ceilometer must be added to the harness.

Problem description

Testing with grenade involves:

  • Installing a basic DevStack of the old version, confirming it with smoke and scenario tempest tests.
  • Establishing a javelin project which makes assertions about resources in the project.
  • Shutting down the original installation, upgrading to the new version of the code but not configuration, applying the relevant database migrations to update the schema, and repeating the tempest tests.
  • Testing the javelin project again to assert the integrity of resources across the upgrade.

This document considers the upgrade and tempest testing but not the javelin testing. Javelin will be addressed in another (forthcoming) document.

Prior to the Juno cycle ceilometer was neither a default service in DevStack nor enabled in tempest. The relevant configuration must be changed to allow testing in Grenade.

Proposed change

Enable ceilometer in Grenade (see Work Items for details).

Alternatives

Given the commitment to Grenade and the project graduation requirements, this is the way to go.

Data model impact

None.

REST API impact

None.

Security impact

None.

Pipeline impact

None.

Other end user impact

These changes will mean a more positive upgrade experience for end users.

Performance/Scalability Impacts

There have been concerns that running ceilometer in the gate will negatively impact performance there. This had been true but recent changes in the sqlalchemy driver and database schema have shown enough improvement that ceilometer can be turned on.

Other deployer impact

None

Developer impact

Active testing will mean the discovery of bugs that someone will have to fix.

Implementation

Assignee(s)

Who is leading the writing of the code? Or is this a blueprint where you’re throwing it out there to see who picks it up?

If more than one person is working on the implementation, please designate the primary author and contact.

Primary assignee:
emilienm
Other contributors:
vrovachev dbelova
Ongoing maintainer:
chdent

Work Items

  • Add upgrade calls to grenade.sh.
  • Add ceilometer upgrade scripts to grenade.
  • Add ceilometer directories to grenade cleanup procedures.
  • Ensure ceilometer data dumped between upgrades.

Note: These work items are captured in a pending patchset

Future lifecycle

As/when ceilometer expands to include additional services, it will be necessary to adjust devstack and grenade to manage (stop, start, cleanup) those services.

Dependencies

Other than those listed above, no additional dependencies.

Testing

These changes improve testing and will be validated there.

Documentation Impact

None.

References

None.