Need help to setup an slave for VDSM functional tests

Hi, I got a Jenkins power user account. I want to configure a job to run VDSM functional tests on a Fedora 18 slave. The functional tests need some prerequisites that can not be done in Jenkins, for example, installing dependency packages (git, python-pep8, pyflakes, autoconf, gcc...), configuring sudo (Jenkins needs root privilege to install/start/stop VDSM), configuring glusterfs. Since the functional tests actually install VDSM on the slave's OS, the slave is better to be a virtual machine. In all, to run VDSM functional tests, we need a VM that is ready to build and install VDSM. There are already some slaves running jobs for building VDSM and unit tests, the environment is almost the same for functional tests. The VM slave needs not be online all the time. There is a Jenkins plugin named "libvirt slave", it can start the VM when the job is triggered, and shutdown it when it's idle for some time. I do not have the privilege to install that plugin. Could you install libvirt slave plugin as well? I think it will be helpful to run functional tests in VMs in Jenkins. Could anyone give me some help to setup the environment? I really appreciate. -- Thanks and best regards! Zhou Zheng Sheng / 周征晟 E-mail: zhshzhou@linux.vnet.ibm.com Telephone: 86-10-82454397

----- Original Message -----
From: "Zhou Zheng Sheng" <zhshzhou@linux.vnet.ibm.com> To: "infra" <infra@ovirt.org> Sent: Wednesday, April 17, 2013 12:44:18 PM Subject: Need help to setup an slave for VDSM functional tests
Hi,
I got a Jenkins power user account. I want to configure a job to run VDSM functional tests on a Fedora 18 slave. The functional tests need some prerequisites that can not be done in Jenkins, for example, installing dependency packages (git, python-pep8, pyflakes, autoconf, gcc...), configuring sudo (Jenkins needs root privilege to install/start/stop VDSM), configuring glusterfs. Since the functional tests actually install VDSM on the slave's OS, the slave is better to be a virtual machine.
i believe the current f18 slaves already have those, if not please open a ticket/email to infra.
In all, to run VDSM functional tests, we need a VM that is ready to build and install VDSM. There are already some slaves running jobs for building VDSM and unit tests, the environment is almost the same for functional tests. The VM slave needs not be online all the time. There is a Jenkins plugin named "libvirt slave", it can start the VM when the job is triggered, and shutdown it when it's idle for some time. I do not have the privilege to install that plugin. Could you install libvirt slave plugin as well?
we currently don't have ability to start/stop vms or launching any non-amazon vms as slaves. (we're working on adding new vms on ovirt-engine instance, which will give us more flexibility with that). is shutting down the vm part of the test?
I think it will be helpful to run functional tests in VMs in Jenkins. Could anyone give me some help to setup the environment? I really appreciate.
i think you can just use the 'fedora18' label for your new job and run it. if you'll have issue, communicate them here on infra list.
-- Thanks and best regards!
Zhou Zheng Sheng / 周征晟 E-mail: zhshzhou@linux.vnet.ibm.com Telephone: 86-10-82454397
_______________________________________________ Infra mailing list Infra@ovirt.org http://lists.ovirt.org/mailman/listinfo/infra

on 04/17/2013 21:21, Eyal Edri wrote:
----- Original Message -----
From: "Zhou Zheng Sheng" <zhshzhou@linux.vnet.ibm.com> To: "infra" <infra@ovirt.org> Sent: Wednesday, April 17, 2013 12:44:18 PM Subject: Need help to setup an slave for VDSM functional tests
Hi,
I got a Jenkins power user account. I want to configure a job to run VDSM functional tests on a Fedora 18 slave. The functional tests need some prerequisites that can not be done in Jenkins, for example, installing dependency packages (git, python-pep8, pyflakes, autoconf, gcc...), configuring sudo (Jenkins needs root privilege to install/start/stop VDSM), configuring glusterfs. Since the functional tests actually install VDSM on the slave's OS, the slave is better to be a virtual machine.
i believe the current f18 slaves already have those, if not please open a ticket/email to infra.
Great!
In all, to run VDSM functional tests, we need a VM that is ready to build and install VDSM. There are already some slaves running jobs for building VDSM and unit tests, the environment is almost the same for functional tests. The VM slave needs not be online all the time. There is a Jenkins plugin named "libvirt slave", it can start the VM when the job is triggered, and shutdown it when it's idle for some time. I do not have the privilege to install that plugin. Could you install libvirt slave plugin as well?
we currently don't have ability to start/stop vms or launching any non-amazon vms as slaves. (we're working on adding new vms on ovirt-engine instance, which will give us more flexibility with that).
is shutting down the vm part of the test?
Thanks Eyal! The functional tests install VDSM rpms, start/stop services, add/delete iSCSI LUNs and NFS exports, and if we want to do glusterfs tests, selinux must be turned off. These actions needs root privilege. If we give Jenkins slave process these privilege, it results some security wholes in the slave OS, so I think we'd better run the tests in a VM slave on demand, and shutdown when idle. As you said, we do not have the ability to start VMs, so I think if the slave is behind a NAT and can not be accessed from the public network, we can give the Jenkins slave process those privileges. Otherwise I have to investigate some other means to run functional tests safely. I tried libvirt-sandbox but it seems very complicated to configure a system to run VDSM in libvirt-sandbox. What do you think? -- Thanks and best regards! Zhou Zheng Sheng / 周征晟 E-mail: zhshzhou@linux.vnet.ibm.com Telephone: 86-10-82454397

----- Original Message -----
From: "Zhou Zheng Sheng" <zhshzhou@linux.vnet.ibm.com> To: "Eyal Edri" <eedri@redhat.com> Cc: "infra" <infra@ovirt.org> Sent: Friday, April 19, 2013 4:42:45 AM Subject: Re: Need help to setup an slave for VDSM functional tests
on 04/17/2013 21:21, Eyal Edri wrote:
----- Original Message -----
From: "Zhou Zheng Sheng" <zhshzhou@linux.vnet.ibm.com> To: "infra" <infra@ovirt.org> Sent: Wednesday, April 17, 2013 12:44:18 PM Subject: Need help to setup an slave for VDSM functional tests
Hi,
I got a Jenkins power user account. I want to configure a job to run VDSM functional tests on a Fedora 18 slave. The functional tests need some prerequisites that can not be done in Jenkins, for example, installing dependency packages (git, python-pep8, pyflakes, autoconf, gcc...), configuring sudo (Jenkins needs root privilege to install/start/stop VDSM), configuring glusterfs. Since the functional tests actually install VDSM on the slave's OS, the slave is better to be a virtual machine.
i believe the current f18 slaves already have those, if not please open a ticket/email to infra.
Great!
In all, to run VDSM functional tests, we need a VM that is ready to build and install VDSM. There are already some slaves running jobs for building VDSM and unit tests, the environment is almost the same for functional tests. The VM slave needs not be online all the time. There is a Jenkins plugin named "libvirt slave", it can start the VM when the job is triggered, and shutdown it when it's idle for some time. I do not have the privilege to install that plugin. Could you install libvirt slave plugin as well?
we currently don't have ability to start/stop vms or launching any non-amazon vms as slaves. (we're working on adding new vms on ovirt-engine instance, which will give us more flexibility with that).
is shutting down the vm part of the test?
Thanks Eyal! The functional tests install VDSM rpms, start/stop services, add/delete iSCSI LUNs and NFS exports, and if we want to do glusterfs tests, selinux must be turned off. These actions needs root privilege. If we give Jenkins slave process these privilege, it results some security wholes in the slave OS, so I think we'd better run the tests in a VM slave on demand, and shutdown when idle. As you said, we do not have the ability to start VMs, so I think if the slave is behind a NAT and can not be accessed from the public network, we can give the Jenkins slave process those privileges. Otherwise I have to investigate some other means to run functional tests safely. I tried libvirt-sandbox but it seems very complicated to configure a system to run VDSM in libvirt-sandbox. What do you think?
i think that your best option will be to wait till we have a working ovirt-engine instance running that runs jenkins slaves. we'll then be able to create vms on it via restapi/sdk/cli. (which i think there might be some code for it already that will work for ovirt, i'll have to check and get back to you). we're also working on installing foreman soon, which can act as a tftp/pxe server to install vms on the fly. i don't think that the VM you're playing with /testing on should be a jenkins slave. the jenkins slave can run your testing code, but all your manipulations (deleting iscsi/nfs/root access/etc..), should be done on a different vm that the jenkins slave will connect to during the test. do you have a wiki on your functional tests requirements/actions i can read about?
-- Thanks and best regards!
Zhou Zheng Sheng / 周征晟 E-mail: zhshzhou@linux.vnet.ibm.com Telephone: 86-10-82454397

on 04/19/2013 15:53, Eyal Edri wrote:
----- Original Message -----
From: "Zhou Zheng Sheng" <zhshzhou@linux.vnet.ibm.com> To: "Eyal Edri" <eedri@redhat.com> Cc: "infra" <infra@ovirt.org> Sent: Friday, April 19, 2013 4:42:45 AM Subject: Re: Need help to setup an slave for VDSM functional tests
Thanks Eyal! The functional tests install VDSM rpms, start/stop services, add/delete iSCSI LUNs and NFS exports, and if we want to do glusterfs tests, selinux must be turned off. These actions needs root privilege. If we give Jenkins slave process these privilege, it results some security wholes in the slave OS, so I think we'd better run the tests in a VM slave on demand, and shutdown when idle. As you said, we do not have the ability to start VMs, so I think if the slave is behind a NAT and can not be accessed from the public network, we can give the Jenkins slave process those privileges. Otherwise I have to investigate some other means to run functional tests safely. I tried libvirt-sandbox but it seems very complicated to configure a system to run VDSM in libvirt-sandbox. What do you think?
i think that your best option will be to wait till we have a working ovirt-engine instance running that runs jenkins slaves.
we'll then be able to create vms on it via restapi/sdk/cli. (which i think there might be some code for it already that will work for ovirt, i'll have to check and get back to you). we're also working on installing foreman soon, which can act as a tftp/pxe server to install vms on the fly.
i don't think that the VM you're playing with /testing on should be a jenkins slave. the jenkins slave can run your testing code, but all your manipulations (deleting iscsi/nfs/root access/etc..), should be done on a different vm that the jenkins slave will connect to during the test.
do you have a wiki on your functional tests requirements/actions i can read about?
Thanks Eyal! I created the WIKI page for functional tests here. http://www.ovirt.org/Vdsm_Functional_Tests I agree with you on running the functional test in a separate VM other than the Jenkins slave, so that we can give the root authority to the process running the tests. This simplify the setup and reduce security threats. By the way, when will it be ready to create VMs on the fly in oVirt infrastructure? -- Thanks and best regards! Zhou Zheng Sheng / 周征晟 E-mail: zhshzhou@linux.vnet.ibm.com Telephone: 86-10-82454397
participants (2)
-
Eyal Edri
-
Zhou Zheng Sheng