From de64bbf19808bc4cef01107e3b914475fae66c28 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 5 May 2016 14:47:02 -0700 Subject: [PATCH 1/4] openqa/worker: tap workers have default classes too we don't want these workers to *only* run tap tests, so put the default classes into their WORKER_CLASS too. --- roles/openqa/worker/templates/workers.ini.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/openqa/worker/templates/workers.ini.j2 b/roles/openqa/worker/templates/workers.ini.j2 index 06a3908412..33982da7ee 100644 --- a/roles/openqa/worker/templates/workers.ini.j2 +++ b/roles/openqa/worker/templates/workers.ini.j2 @@ -1,5 +1,5 @@ [global] HOST = http://{{ openqa_hostname|default('localhost') }} {% if openqa_tap is defined and openqa_tap %} -WORKER_CLASS = tap +WORKER_CLASS = tap,qemu_x86_64,qemu_i686,qemu_i586 {% endif %} From e8bc1d4d12afd05d49bb6c3a505e86965c643cc7 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Thu, 5 May 2016 22:58:36 +0000 Subject: [PATCH 2/4] Install some more packages for Ipsilon on Fedora Signed-off-by: Patrick Uiterwijk --- inventory/group_vars/jenkins-slave | 3 +++ 1 file changed, 3 insertions(+) diff --git a/inventory/group_vars/jenkins-slave b/inventory/group_vars/jenkins-slave index b8ed5b00e6..5a1679bc43 100644 --- a/inventory/group_vars/jenkins-slave +++ b/inventory/group_vars/jenkins-slave @@ -160,6 +160,9 @@ slave_packages_fedora: - socket_wrapper - nss_wrapper - python-requests-kerberos +- krb5-workstation +- python-sssdconfig +- mod_ssl - python-lesscpy # End requires for Ipsilon - libxml2-python # Required by gimp-docs - createrepo # Required by dnf From 3cb1cb2f14ea2ea2620c197549bc465eb136a196 Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Thu, 5 May 2016 23:11:44 +0000 Subject: [PATCH 3/4] Ipsilon requires lots of entropy, add haveged Signed-off-by: Patrick Uiterwijk --- roles/jenkins/slave/tasks/main.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/roles/jenkins/slave/tasks/main.yml b/roles/jenkins/slave/tasks/main.yml index 2147501d93..11b0fa5e4a 100644 --- a/roles/jenkins/slave/tasks/main.yml +++ b/roles/jenkins/slave/tasks/main.yml @@ -68,6 +68,24 @@ - jenkins/slave - config +# Haveged is not needed per se, but very useful for builds that require lots of entropy +# Hello, Ipsilon +- name: install haveged + dnf: name=haveged state=installed + when: is_fedora is defined and ansible_distribution_major_version|int > 21 + tags: + - jenkins + - jenkins/slave + - packages + +- name: enable haveged service to start on boot + service: name=haveged state=running enabled=true + when: is_fedora is defined and ansible_distribution_major_version|int > 21 + tags: + - jenkins + - jenkins/slave + - service + - name: create workspace directory file: state=directory path=/srv/jenkins owner=jenkins group=jenkins tags: From fd0522939bbfd5ac3d06be4b66d749b9f178dd53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Thu, 5 May 2016 18:49:15 +0200 Subject: [PATCH 4/4] copr: more agressive setting and add documentation of variables --- roles/copr/backend/templates/copr-be.conf.j2 | 29 ++++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/roles/copr/backend/templates/copr-be.conf.j2 b/roles/copr/backend/templates/copr-be.conf.j2 index c3e9573398..79c8726894 100644 --- a/roles/copr/backend/templates/copr-be.conf.j2 +++ b/roles/copr/backend/templates/copr-be.conf.j2 @@ -12,6 +12,23 @@ frontend_url={{ frontend_base_url }}/backend # default is PASSWORDHERE but you really should change it. really. frontend_auth={{ copr_backend_password }} +# For each build group set: +# name - name of the group (will be shown in the worker process name) +# archs - architectures to build by this group +# spawn_playbook - path to an ansible playbook which spawns a builder +# terminate_playbook - path to an ansible playbook to terminate the builder +# max_workers - maximum number of workers in this group +# max_vm_total - maximum number of VM which can run in parallel +# max_vm_per_user - maximum number of VM which can use one user in parallel +# max_builds_per_vm - maximum consequetive builds on one VM +# max_spawn_processes=2 - max number of spawning playbooks run in parallel +# vm_spawn_min_interval=30 - after you spin up one VM wait this number of seconds +# vm_dirty_terminating_timeout=12 - if user do not reuse VM within this number second then VM is terminated +# vm_health_check_period=120 - every X seconds try to check if VM is still alive +# vm_health_check_max_time=300 - after this number seconds is not alive it is marked as failed +# vm_max_check_fails=2 - when machine is consequently X times marked as failed then it is terminated +# vm_terminating_timeout=600 - when machine was terminated and terminate PB did not finish within this number of second, we will run the PB once again. + group0_name=PC group0_archs=i386,x86_64 @@ -28,19 +45,19 @@ build_groups=2 group1_name=PPC64LE group1_archs=ppc64le -group0_max_workers=28 +group0_max_workers=30 group0_max_vm_per_user=6 group0_max_vm_total=25 group0_vm_spawn_min_interval=5 -group0_max_spawn_processes=3 +group0_max_spawn_processes=5 group1_spawn_playbook=/home/copr/provision/builderpb_ppc64le.yml group1_terminate_playbook=/home/copr/provision/terminatepb_ppc64le.yml -group1_max_workers=3 +group1_max_workers=5 group1_max_vm_per_user=1 -group1_max_vm_total=2 -group1_max_spawn_processes=4 +group1_max_vm_total=4 +group1_max_spawn_processes=2 {% endif %} ## old OS cloud, non VMM backend @@ -55,7 +72,7 @@ group1_max_spawn_processes=4 destdir=/var/lib/copr/public_html/results # default is 10 -sleeptime=30 +sleeptime=5 # path to log file # default is /var/log/copr/backend.log