How to Test your OpenStack Deployment?

Like us in the ICCLab, you have likely spent lots of time researching the best means to deploy OpenStack and you’ve decided upon a particular method (at the ICCLab we use foreman and puppet). You’ve implemented OpenStack with your chosen deployment plan and technologies and you now have an operational OpenStack cluster. The question you now have to ask is:

“How do I test that all functionality is operating correctly?”

You could certainly take the time to write a suite of tests using the various OpenStack python clients and maintain those. However there is an OpenStack project already available that can save you a lot of time. OpenStack Tempest is a project and suite that comprises of a set of integration tests. Tempest is used to validate the OpenStack code base through it’s integration with Jenkins (continuous integration server). Tempests calls against OpenStack service API endpoints and uses the python unittest2 and nosetest frameworks at its core.

If you wish to experiment with Tempest locally, try it out with devstack. Devstack automatically configures Tempest for use with it. To ease things, simply use vagrant-devstack (README here) do the following:

  1. Install VirtualBox
  2. Install vagrant
  3. git clone https://github.com/dizz/vagrant-devstack.git
  4. vagrant up
  5. vagrant ssh
  6. cd /opt/stack/tempest
  7. ./run_tests.sh

You will now see quite an amount of tests being run against your devstack installation. It will take time! If you wish to integrate Tempest with your Jenkins CI server see information on devstack gate. There is also a Tempest Jenkins plugin. Finally, if you wish to run Tempest against a “real” installation of OpenStack you will need to configure the Tempest configuration file (etc/tempest.conf) and change the relevant information (more here).


3 Kommentare

  • Do you feel that it is possible to create a ‘openstack certified’ platform? My aim would be to get to single workload, multiple endpoints all sharing the core API calls.

  • Hey Tim,
    I’ve only noticed your post now! Sorry for the tardiness. To your question I completely do think it’s possible to have a OpenStack certified platform, one that adheres to a specific “profile” based on the particular release. What I would expect as a minimum is a set of tests (e.g. via tempest) that ensures first and foremost basic functionality. A good example of this is CloudFoundry Core [1]. I think this provides an excellent model and one that could be applied to OpenStack. In OCCI we also had a similar idea sometime ago via the DoYouSpeakOCCI [2] work, which would test compliance of endpoints to the OCCI specifications.

    [1] http://core.cloudfoundry.org/
    [2] https://github.com/irf/doyouspeakocci


Leave a Reply

Your email address will not be published. Required fields are marked *