Difference between revisions of "Cinder/tested-3rdParty-drivers"
m (→What tests do I use?) |
(→FAQ) |
||
Line 67: | Line 67: | ||
[[post-config|$CINDER_CONF]] | [[post-config|$CINDER_CONF]] | ||
volume_driver=cinder.volume.drivers.foo.FooDriver | volume_driver=cinder.volume.drivers.foo.FooDriver | ||
+ | </pre> | ||
+ | ==== How do I run driver certs tests for DevStack? ==== | ||
+ | Setup the devstack environment http://docs.openstack.org/developer/devstack/. | ||
+ | <pre> | ||
+ | cd ~/devstack/driver_certs | ||
+ | run ./cinder_driver_cert.sh | ||
+ | </pre> | ||
+ | |||
+ | You can also run the the same tests from tempest folder of the devstack installation. It can come in handy if you want to run a specific test and debug | ||
+ | <pre> | ||
+ | cd /opt/stack/tempest | ||
+ | ./run_tempest.sh tempest.api.volume | ||
+ | ./run_tempest.sh tempest.api.volume.test_volumes_get | ||
</pre> | </pre> | ||
Revision as of 16:25, 14 January 2015
Contents
Driver Testing
Description
The Cinder community (and other OpenStack projects) have agreed that if a vendor wishes to submit a driver for their particular storage device that said vendor should also be required to set up a third party CI system in their lab which runs Tempest volume tests against their storage device for every Cinder commit, and provides feedback in to Gerrit.
Deadlines
- Drivers merged before Kilo need to have a CI by the end of K-2 (5th of Feb 2015). Failure will result in driver removal in the Kilo release. - Discussion regarding this here
- Drivers merged in Kilo need to have a CI by the end of K-3 (19th of March 2015). Failure will result in driver removal in the L release.
Third Party CI Requirements
- See the official Third Party Testing wiki.
Existing CI Solutions
- Puppet modules for deploying OpenStack CI
- Git repo
- Sample Jenkins Job Builder Job Template for Cinder drivers
- Fork of Jay Pipe's external test repo and more up-to-date. Uses nodepool.
- Simple OpenStack Continuous Integration (sos-ci)
- Git repo
- Builds Devstack virtual machines with Ansible.
- Jay Pipe's external testing series
- Note: Jay's repo is outdated, but the articles are useful to read. A more updated fork exists.
- Git Repo
- Understanding the OpenStack CI
- Setting up CI Part 1
- Setting up a CI Part 2
Questions
- Join Third Party Meeting
- Reach out to IRC nicks DuncanT or asselin on Freenode #openstack-cinder.
FAQ
What tests do I use?
Use the OpenStack integration test suite Tempest. Specifically you only need to run the volume tests. These tests can be started with the following command from a Tempest repo:
/path/to/tempest/tools/pretty_tox.sh volume
How do I configure DevStack so my Driver Passes Tempest?
[[local|localrc]] ADMIN_PASSWORD=password MYSQL_PASSWORD=password RABBIT_PASSWORD=password SERVICE_PASSWORD=password SERVICE_TOKEN=password # These options define expected driver capabilities TEMPEST_VOLUME_DRIVER=foo TEMPEST_VOLUME_VENDOR="Foo Inc" TEMPEST_STORAGE_PROTOCOL=iSCSI # These options allow you to specify a branch other than "master" be used CINDER_REPO=https://review.openstack.org/openstack/cinder CINDER_BRANCH=refs/changes/83/72183/4 # Disable security groups entirely Q_USE_SECGROUP=False LIBVIRT_FIREWALL_DRIVER=nova.virt.firewall.NoopFirewallDriver CINDER_SECURE_DELETE=False [[post-config|$CINDER_CONF]] volume_driver=cinder.volume.drivers.foo.FooDriver
How do I run driver certs tests for DevStack?
Setup the devstack environment http://docs.openstack.org/developer/devstack/.
cd ~/devstack/driver_certs run ./cinder_driver_cert.sh
You can also run the the same tests from tempest folder of the devstack installation. It can come in handy if you want to run a specific test and debug
cd /opt/stack/tempest ./run_tempest.sh tempest.api.volume ./run_tempest.sh tempest.api.volume.test_volumes_get
When thirdparty CI voting will be required?
Once third party CI's become more common and stable, we'll revisit the subject. For now you can review the discussion on the decision.