HOWTO run integration and upgrade tests » History » Revision 19
« Previous |
Revision 19/40
(diff)
| Next »
Loïc Dachary, 05/07/2015 07:48 AM
Scheduling a suite¶
This requires access to a running teuthology cluster, for instance the cluster from the sepia lab.
- git clone https://github.com/ceph/teuthology/
- cd teuthology
- ./bootstrap
- Test the suite with --dry-run, i.e. something like:
./virtualenv/bin/teuthology-suite --dry-run --filter-out btrfs,ext4 --priority 1000 --suite rados --suite-branch giant --machine-type plana,burnupi,mira --distro ubuntu --email loic@dachary.org --ceph giant
- Review the jobs to be scheduled and if it matches what is expected, run the same command without the --dry-run
- Assuming the suite was run on the sepia lab, it will immediately show up at http://pulpito.ceph.com/ (for instance http://pulpito.ceph.com/loic-2015-03-27_09:57:09-upgrade:firefly-x:stress-split-erasure-code-hammer---basic-multi/). Note the loic-2015-03-27_09:57:09-upgrade:firefly-x:stress-split-erasure-code-hammer---basic-multi part of the path: it matches the run name displayed by teuthology-suite
The meaning of the teuthology-suite arguments are:
- --suite a reference to https://github.com/ceph/ceph-qa-suite/tree/master/suites. For instance --suite rados means run all jobs at https://github.com/ceph/ceph-qa-suite/tree/master/suites/rados
- --suite-branch a reference to the ceph-qa-suite branch to use. For instance --suite rados --suite-branch giant means run all jobs at https://github.com/ceph/ceph-qa-suite/tree/giant/suites/rados instead of https://github.com/ceph/ceph-qa-suite/tree/master/suites/rados
- --priority is the the priority of the job in the queue (lower numbers are higher priority). By default it is 1000 and if nothing is urgent it should be used. If in the process of debugging a single job that fails, the priority 101 can be used so that it is scheduled faster.
- --machine-type is the kind of machine that will be provisionned to run the tests. Use plana,burnupi,mira for bare metal or vps for virtual machines.
- --ceph is the branch of the Ceph repository to use and defaults to master. For instance --ceph giant means use https://github.com/ceph/ceph/tree/giant/ instead of https://github.com/ceph/ceph/tree/master/
- --email when the run is complete an email will be sent to this address with a summary of the results.
Scheduling a rados suite¶
NOTE: git checkout 819c63a8fa9776028311b96efe2c14d97291ff8f
can be used until the code is merged. It was reverted because of a bug and this --subset feature currently does not work to schedule suites other than rados
In hammer rados suite generates more than 3000 jobs and it is too heavy for the purpose of validating a series of pull requests before they are merged into the stable release branch. The number of jobs can be reduced by using the --subset option. It will make sure every yaml (facet) is included in the run but will not include all the combinations. For instance:
./virtualenv/bin/teuthology-suite --subset 1/7 --priority 101 --suite rados --suite-branch hammer --machine-type plana,burnupi,mira --distro ubuntu --email abhishek.lekshmanan@gmail.com --owner loic@dachary.org --ceph hammer-backports
Will reduce the number of jobs to 1/7 of the total number of jobs, as long as it includes all yaml (facets).
For a given rados suite --subset 0/7 will always create the same jobs. By running 0/7, then 1/7, etc. up to 7/7 all jobs are generated. It is a good idea to not always pick the same subset to get various combinations and increase the odds of discovering a problem.
Re-scheduling failed or dead jobs from an existing suite¶
- Ask https://github.com/ceph/paddles (the server in which suite runs are stored) about the dead jobs
run=loic-2015-03-23_01:09:31-rados-giant---basic-multi eval filter=$(curl --silent http://paddles.front.sepia.ceph.com/runs/$run/jobs/?status=dead | jq '.[].description' | while read description ; do echo -n $description, ; done | sed -e 's/,$//')
or the fail jobs:run=loic-2015-03-23_01:09:31-rados-giant---basic-multi eval filter=$(curl --silent http://paddles.front.sepia.ceph.com/runs/$run/jobs/?status=fail | jq '.[].description' | while read description ; do echo -n $description, ; done | sed -e 's/,$//')
- Re-run the suite using the same command line without --filter-out and with --filter "$filter" to only schedule the jobs described in the fitler variable
./virtualenv/bin/teuthology-suite --filter "$filter" --priority 1000 --suite rados --suite-branch giant --machine-type plana,burnupi,mira --distro ubuntu --email loic@dachary.org --ceph giant
Killing a suite¶
- if the run is scheduled but did not start yet:
- if the suite was scheduled with --machine-type plana,burnupi,mira:
./virtualenv/bin/teuthology-kill -m multi -r loic-2015-03-27_09:57:09-upgrade:firefly-x:stress-split-erasure-code-hammer
- if the suite was scheduled with --machine-type vps
./virtualenv/bin/teuthology-kill -m vps -r loic-2015-03-27_09:57:09-upgrade:firefly-x:stress-split-erasure-code-hammer
- if the suite was scheduled with --machine-type plana,burnupi,mira:
- if the run already started the -m option is not necessary
./virtualenv/bin/teuthology-kill -r loic-2015-03-27_09:57:09-upgrade:firefly-x:stress-split-erasure-code-hammer
Integration suites¶
Expected to be successfully run on the integration branch before asking approval to the leads (hence before asking QE to tests further)
QE suites¶
Expected to be successfully run on the release branch before passing it to the person publishing the release.
dumpling¶
rados
rbd
rgw
fs
ceph-deploy
upgrade/dumpling
firefly¶
rados
rbd
rgw
fs
krbd
kcephfs
samba
ceph-deploy
upgrade/firefly
upgrade/dumpling-firefly-x (to giant)
powercycle
giant¶
rados
rbd
rgw
fs
krbd
kcephfs
knfs
haddop
samba
rest
multimds
multi-version
upgrade/giant
powecycle
Updated by Loïc Dachary almost 9 years ago · 19 revisions