ceph / ceph-ansible

Ansible playbooks to deploy Ceph, the distributed filesystem.
Apache License 2.0
1.69k stars 1.01k forks source link

Testing PRs #420

Closed msambol closed 8 years ago

msambol commented 9 years ago

Looks like testing only involves running the syntax check. Perhaps we could execute a full build? I can help implement this.

leseb commented 9 years ago

Correct only syntax check. Do you mean building a full build on Travis? Or building an external CI? Anyway I'm fine with both 😁

msambol commented 9 years ago

Never used Travis (only Jenkins), but it looks good. Think a full build would be more beneficial.

leseb commented 9 years ago

Yes it will for sure, though I'm not sure how to connect to github... If you have any idea, please don't hesitate :)

leseb commented 9 years ago

@msambol any plan to move forward with this? :)

msambol commented 9 years ago

@leseb Hmm could I have access to Travis?

leseb commented 9 years ago

@msambol unfortunately this is not possible as the access is bound to github and the organisations you're part of... What do you have in mind because I don't think we can setup a full build on Travis, we are limited by the infrastructure they provide to us.

msambol commented 9 years ago

@leseb Jenkins somewhere would be perfect but idk where it could live.. Even if it was just a vagrant build I think it'd better than the syntax check.

leseb commented 9 years ago

@msambol yes I know... However I've never setup any external CI for Github so we might need to have a look. I might be able to provide a VM to act as a CI machine. I believe using nested QEMU will be easier/faster than virtualbox, this also means modifying the Vagrant file. Yes a lot of work :)

msambol commented 9 years ago

I can do the CI and Github integration. My vagrant experience isn't the best so perhaps you could do that piece.

alfredodeza commented 9 years ago

We have a full CI at jenkins.ceph.com that we can certainly use, I am not sure what a full test would entail requirements-wise.

Our CI is getting pretty consistent and for new jobs it usually means a simple directory with scripts/definitions for JJB (Jenkins Job Builder).

The repository is located here: https://github.com/ceph/ceph-build

And this how we test for ceph-deploy pull requests for example:

https://github.com/ceph/ceph-build/tree/master/ceph-deploy-pull-requests

msambol commented 9 years ago

@alfredodeza I'd be happy with a job that deploys ceph in vagrant on a VM. What are you thinking, @leseb?

alfredodeza commented 9 years ago

vagrant on our CI might not work for us as part of our workflow. Is it feasible to run these playbooks in a single machine? Would that be enough to test a good chunk of use cases?

leseb commented 9 years ago

This is "probably" doable. I just believe we would need at least one disk to configure an OSD. Moreover we might have to hack this deployment a little bit. Most of the stuff is already handled by the playbook. I'm heading to the openstack summit for next week. Then I'll be on PTO for 2 weeks so this might have to wait a bit :-). Thanks guys for your support!

msambol commented 9 years ago

@leseb Nice I'm in Tokyo too. :) Yeah, we would have to hack together a configuration since master has no disks specified. Definitely doable let's chat when you're back from vacation.

msambol commented 9 years ago

@leseb At the summit today?

leseb commented 9 years ago

Yup! Will be at the Sakura for the Ceph sessions!

msambol commented 9 years ago

Still here? I'm in blue hat.

bengland2 commented 8 years ago

I'm willing to help. We could use a few small VMs to run tests. Where is the existing automation run from and with what scripts? I'm still hitting problems when I use ceph-ansible, the automation would prevent a lot of that from happening and make us more confident to make changes in it.

leseb commented 8 years ago

@bengland2 the idea would be to run a vagrant up somewhere and get the results from it. Ideally we would use the libvirt provider since it'll be much faster than virtualbox. I just don't think/know we can connect an external CI (our own) to github... So every single PR we could run a vagrant up.

leseb commented 8 years ago

Putting this as a reference: https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin

alfredodeza commented 8 years ago

@leseb we have everything in place for automatic machine provisioning for ceph-ansible for every pull request. If I am reading the vagrant call correctly you do everything in a single host right?

I will open a separate pull request to address this and that it hooks into our current build system.

leseb commented 8 years ago

@alfredodeza yes correct we just need a single host that can spin-up virtual machines. That will awesome, kinda tired to test every single PR on my laptop before merging...

mattt416 commented 8 years ago

Hi @leseb and @alfredodeza, our product https://github.com/rcbops/rpc-openstack uses https://github.com/openstack/openstack-ansible and has the ability to boot an all in one (AIO) running ceph and OpenStack. As openstack-ansible uses LXC containers, we can test three separate MON "hosts" and three separate OSD "hosts" on whatever the AIO was spun up on. This is really great for gating and development and is certainly an option to use for gating instead of vagrant.

The rpc-openstack AIO deploy script would need some tweaking to only build ceph, but it should be possible to update it for a ceph-only use case should you guys be interested.

Let me know if you are and I can hack something together for you to test.

Thanks!

--Matt

leseb commented 8 years ago

@mattt416 thanks for the proposal, however I believe we have everything we need at the moment with this CI. We fixed this issue with the help of #493