Enable kvm/libvirtd usage in standard job template



currently we need to add mounts and mknods in our Node jobs to be able to leverage kvm and libvirtd.

This is a request to enable

  • kvm

  • libvirtd

  • guestfiosh (which should be covered by the two above)

in the standard job template.
This willr emove the burden from maintaining this in our Node sjobs.

After all, Node jobs are regular jobs in oVirt.


David Caro Estevez
June 8, 2016, 8:43 AM

Just to clarify, right now the only possibility to run standard ci is with mock_runner, there are plans to support it also from lago itself, but that's not even started, so moving away from mock will take for sure some time.

A quick work-around is using lago inside of the current standard ci (though that requires you to setup the lago confs and such, and deploy scripts as a replacement of the current mounts file and mknods).

About package handling, the standard ci is not focused on it, not has any specifics. The difference is that to create the images node is building, you heavily need some tools that are not meant to be run in a chroot, and that heavily depend on lower level features (like /dev/kvm being present).
So what you are asking, is to actually stop treating every project equally and make all the other projects second class citizens, in favor of the node project (exactly the opposite you started asking for).

So to summarize, standard ci is agnostic towards what you build (packages, images, tarballs, text-files, qcows, directory structures...), but the current implementation with chroots has it's limitations (as any other implementation would have) and those are not going to change soon afaik, and, at least in my opinion, we should not start treating any project specially creating first and second class citizens as that would be running against the very basic principles the standard ci was wrote for so for now I ask you to continue using the current system, asking for help from us if needed in order to maintain those workarounds until we implement other ways to run the standard ci (actually, I was the one that fixed that up the last time and helped you with it, and you'd agree with me that I've been always able and ready to help with any question or issue you have come to me with).

Fabian Deutsch
June 8, 2016, 8:54 AM

First: Yes, yuo always helped and support us and this is really appreciated!

However, I do see that we still spend so much time on enabling CI for Node and that is why I am looking for where we cna tune the steup to make it easier for Node to write tests.

Up to now I thought that lago was rather a long term solution, but I think it is probably the solution which is well supported by the CI infra and usable for our case.

David Caro Estevez
June 8, 2016, 9:06 AM

What is the current issue you have with the CI?

Eyal Edri
August 28, 2016, 11:20 AM

currently libvirt + kvm is enabled via puppet for all jenkins slaves,

  1. Make sure libvirt is started
    service {'libvirtd' :
    ensure => running,
    enable => true,

for centos:
package { 'qemu-kvm-ev':
ensure => latest,

for fedora:
package {'qemu-kvm':
ensure => latest,

Also, any job which requires creating and building VMs should probably use Lago instead of standard CI, but depends on the usage.

Anything else is missing today?

Fabian Deutsch
August 29, 2016, 8:37 AM

No, I think we are set and done on this issue.





Fabian Deutsch

Blocked By