Re: quick testing/development with ceph-ansible

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks good guys!


On Tue, May 9, 2017 at 11:53 PM, Alfredo Deza <adeza@xxxxxxxxxx> wrote:
> Hi,
>
> For the past few months Andrew Schoen and I have been working on
> getting a testing workflow [0] for ceph-ansible that can quickly bring
> up a number of machines, deploy Ceph, and verify correctness
> afterwards.
>
> Unlike other testing *frameworks*, there is no actual framework, but
> just a collection of tools working together to create machines, deploy
> ceph, and run tests. The process uses a few tools:
>
> * tox [1] For creating the test matrix from variables (factors) and
> defining the steps
>
> * vagrant [2] To create the machines
>
> * testinfra [3] For testing remote nodes
>
> * virtualbox or libvirt: as the backend for creating machines
>
> Our reasoning for something like this was to be able to test
> thoroughly all pull requests coming into the ceph-ansible project,
> with all the permutations we think are important (e.g. we have the
> ability to test ansible 2.1 and 2.2, and can add 2.3 easily to the
> matrix), while being able to run these locally.
>
> Currently, we are running about 26 separate test scenarios per pull
> request. These are just a few of the combinations we currently
> support:
>
> jewel-ansible2.2-xenial_cluster
> jewel-ansible2.2-journal_collocation
> jewel-ansible2.2-centos7_cluster
> jewel-ansible2.2-dmcrypt_journal
> jewel-ansible2.2-dmcrypt_journal_collocation
> jewel-ansible2.2-docker_cluster
> jewel-ansible2.2-purge_cluster
> jewel-ansible2.2-purge_dmcrypt
> jewel-ansible2.2-docker_dedicated_journal
> jewel-ansible2.2-docker_dmcrypt_journal_collocation
> jewel-ansible2.2-update_dmcrypt
> jewel-ansible2.2-update_cluster
> jewel-ansible2.2-cluster
> kraken-ansible2.2-xenial_cluster
> kraken-ansible2.2-journal_collocation
> kraken-ansible2.2-centos7_cluster
> kraken-ansible2.2-dmcrypt_journal
> kraken-ansible2.2-dmcrypt_journal_collocation
> kraken-ansible2.2-docker_cluster
> kraken-ansible2.2-purge_cluster
> kraken-ansible2.2-purge_dmcrypt
> kraken-ansible2.2-docker_dedicated_journal
> kraken-ansible2.2-docker_dmcrypt_journal_collocation
> kraken-ansible2.2-update_dmcrypt
> kraken-ansible2.2-update_cluster
> kraken-ansible2.2-cluster
>
> All of those are expanded by tox, from factors defined in the tox.ini
> [4] (tox's configuration file).
>
> This way of setting up a cluster is very liberating: machines are in
> pristine condition each time, with a few variables the provisioning
> can change, one can reproduce environments regardless of the testing
> system (e.g. not tied to Jenkins or other CI components), and it
> doesn't need actual running machines.
>
> The objective of this is to bring up a cluster, test it, and tear it
> down, but for debugging/development  it isn't hard to keep the
> machines around: just remove the line in tox.ini that destroys the
> machines with vagrant.
>
> The amount of (non-functional) tests we have is not very large, but
> helps make verification of deployment with ceph-ansible. For example,
> there are assertions on how we generate a ceph.conf file from the
> template.
>
> We have a good amount of initial documentation for the project [0]
> explaining how to set things up and add/change tests, any feedback is
> welcome so we can improve those docs and make it easier to get
> started.
>
> Thanks!
>
> [0] http://docs.ceph.com/ceph-ansible/master/testing/index.html
> [1] https://tox.readthedocs.io/en/latest/
> [2] https://www.vagrantup.com/
> [3] https://testinfra.readthedocs.io/en/latest/
> [4] https://github.com/ceph/ceph-ansible/blob/master/tox.ini
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Cheers,
Brad
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux