]> git.apps.os.sepia.ceph.com Git - teuthology.git/commit
transparent OpenStack provisioning for teuthology-suite
authorLoic Dachary <ldachary@redhat.com>
Sun, 19 Jul 2015 06:55:48 +0000 (08:55 +0200)
committerLoic Dachary <ldachary@redhat.com>
Wed, 2 Sep 2015 22:02:39 +0000 (00:02 +0200)
commit26e140e590e7feaeb445d183c86d4bae417aa22b
tree908a3fc50f906a240d4cddf9723b870a69287a5d
parent4ec4652f1a6fdd3b24a09cabe2bd92128df9368e
transparent OpenStack provisioning for teuthology-suite

The teuthology-openstack command is a wrapper around teuthology-suite
that transparently creates the teuthology cluster using OpenStack
virtual machine.

For machines of machine_type == openstack in paddles, when locking a
machine, an instance is created in the matching OpenStack cluster with:

   openstack server create redhat

And renamed into redhat042010 if assigned the IP x.x.42.10/16. It is then
locked in paddles which has been prepare with one slot for each
available IP in the range.

An OpenStack cluster is defined in the .teuthology.yaml file as follows:

openstack:
  user-data: teuthology/openstack/openstack-{os_type}-{os_version}-user-data.txt
  nameserver: 167.114.252.136
  machine:
    disk: 10 # GB
    ram: 7000 # MB
    cpus: 1
  volumes:
    count: 0
    size: 1 # GB
  flavor-select-regexp: ^vps-ssd
  subnet: 167.114.224.0/19

When the machine is unlocked, it is destroyed with

   openstack server delete redhat042010

The python-openstackclient command line is used instead of the
corresponding API because it is well maintained and documented.

Integration tests require an OpenStack tenant.

http://tracker.ceph.com/issues/6502 Fixes: #6502

Signed-off-by: Loic Dachary <loic@dachary.org>
35 files changed:
README.rst
bootstrap
scripts/openstack.py [new file with mode: 0644]
scripts/suite.py
setup.py
teuthology/lock.py
teuthology/nuke.py
teuthology/openstack/__init__.py [new file with mode: 0644]
teuthology/openstack/openstack-centos-6.5-user-data.txt [new file with mode: 0644]
teuthology/openstack/openstack-centos-7.0-user-data.txt [new file with mode: 0644]
teuthology/openstack/openstack-debian-7.0-user-data.txt [new symlink]
teuthology/openstack/openstack-opensuse-user-data.txt [new file with mode: 0644]
teuthology/openstack/openstack-teuthology.init [new file with mode: 0755]
teuthology/openstack/openstack-ubuntu-14.04-user-data.txt [new symlink]
teuthology/openstack/openstack-ubuntu-user-data.txt [new file with mode: 0644]
teuthology/openstack/openstack-user-data.txt [new file with mode: 0644]
teuthology/openstack/setup-openstack.sh [new file with mode: 0755]
teuthology/openstack/test/__init__.py [new file with mode: 0644]
teuthology/openstack/test/archive-on-error.yaml [new file with mode: 0644]
teuthology/openstack/test/noop.yaml [new file with mode: 0644]
teuthology/openstack/test/openstack-integration.py [new file with mode: 0644]
teuthology/openstack/test/openstack.yaml [new file with mode: 0644]
teuthology/openstack/test/resources_hint.yaml [new file with mode: 0644]
teuthology/openstack/test/resources_hint_no_cinder.yaml [new file with mode: 0644]
teuthology/openstack/test/stop_worker.yaml [new file with mode: 0644]
teuthology/openstack/test/suites/noop/+ [new file with mode: 0644]
teuthology/openstack/test/suites/noop/noop.yaml [new file with mode: 0644]
teuthology/openstack/test/suites/nuke/+ [new file with mode: 0644]
teuthology/openstack/test/suites/nuke/nuke.yaml [new file with mode: 0644]
teuthology/openstack/test/test_openstack.py [new file with mode: 0644]
teuthology/openstack/test/user-data-test1.txt [new file with mode: 0644]
teuthology/provision.py
teuthology/task/selinux.py
teuthology/test/task/test_selinux.py
tox.ini