Hi all,
I have written this last week-end and I'm late...
I have started to write down some instruction on how one can get his/her project added to our jenkins server: https://fedoraproject.org/wiki/Jenkins@infra
And (attached) I wrote a small SOP on how we should handle this.
These two documents are up for review, discussion and correction.
Please fire away :) Thanks, Pierre
<XL> are my comments below.
On Wed, Mar 6, 2013 at 11:32 PM, Pierre-Yves Chibon pingou@pingoured.frwrote:
Hi all,
I have written this last week-end and I'm late...
I have started to write down some instruction on how one can get his/her project added to our jenkins server: https://fedoraproject.org/wiki/Jenkins@infra
== How can I add my project to Jenkins? == [..snip] <XL> You can actually add this as a template so people can just fill up the form. Look at ticket type in admin panel if you have access to.
[...] meaning you have to take care of specifying the dependencies (or in some case, ask fedora-infrastructure to add them to the builders).
<XL> How does that work here? I mean, is people allow to install packages from build-step - or - will it have specific amount of images with required packages requested from people?
Also, as job's owner has full access to it's job, is there any policy regarding the build trigger (which requires to set a token) option? And how many jobs an instance can run? I see only 2 per instance for now, can an instance have more than that?
And (attached) I wrote a small SOP on how we should handle this.
"** the master connects to the slave via ssh" <XL> Any technical reason for this one?
Why not use the excellent swarm plugin which allows slaves to auto-discover to jenkins master? So we can pre-package an image with the swarm client, run the instance, instance gets up and automatically join in (look for master from UDP, found it and start hand-shake stuff), gives it's resources availability and start jobs once master load-balance build. This have the advantage of add/remove slaves without explicitly adding/removing nodes from the setting panel. (e.g the 2 slaves are pretty busy and you need a build in the queue to be done asap, you fire an instance up and master send your build to it.)
"Add project to jenkins" <XL> Jenkins provides some useful remote access API which can help you do this part easier. You can even ansible it ;) If you have time you can also use their python API to write a jenkins-job-setup.py <option> So admin can just log in to lockbox and ansible or jenkins-job-setup.py . Maybe you should look at it.
These two documents are up for review, discussion and correction.
Please fire away :) Thanks, Pierre
infrastructure mailing list infrastructure@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/infrastructure
On Thu, 2013-03-07 at 02:47 +0100, Xavier Lamien wrote:
<XL> are my comments below.
On Wed, Mar 6, 2013 at 11:32 PM, Pierre-Yves Chibon pingou@pingoured.fr wrote: Hi all,
I have written this last week-end and I'm late... I have started to write down some instruction on how one can get his/her project added to our jenkins server: https://fedoraproject.org/wiki/Jenkins@infra
== How can I add my project to Jenkins? == [..snip]
<XL> You can actually add this as a template so people can just fill up the form. Look at ticket type in admin panel if you have access to.
That's a bit what I had in mind ultimately yes.
[...] meaning you have to take care of specifying the dependencies (or in some case, ask fedora-infrastructure to add them to the builders).
<XL> How does that work here? I mean, is people allow to install packages from build-step - or - will it have specific amount of images with required packages requested from people?
It means that if you need lixyz to build you project and that this lib isn't already there, you'll have to ask us to install it (via ansible). People have access to the web UI and that's it and jenkins itself doesn't have admin rights on the machine nor the nodes.
Also, as job's owner has full access to it's job, is there any policy regarding the build trigger (which requires to set a token) option? And how many jobs an instance can run? I see only 2 per instance for now, can an instance have more than that?
At the moment the builders can run 2 jobs in parallel, that's based on the fact that the builders are dual-core. We can of course increase the builder and thus the number of build they can do. It all depends on how much Jenkins end up being used.
"** the master connects to the slave via ssh"
<XL> Any technical reason for this one?
No real reason beside that it is the default behavior.
Why not use the excellent swarm plugin which allows slaves to auto-discover to jenkins master? So we can pre-package an image with the swarm client, run the instance, instance gets up and automatically join in (look for master from UDP, found it and start hand-shake stuff), gives it's resources availability and start jobs once master load-balance build. This have the advantage of add/remove slaves without explicitly adding/removing nodes from the setting panel. (e.g the 2 slaves are pretty busy and you need a build in the queue to be done asap, you fire an instance up and master send your build to it.)
This sounds quite interesting indeed :)
"Add project to jenkins"
<XL> Jenkins provides some useful remote access API which can help you do this part easier. You can even ansible it ;) If you have time you can also use their python API to write a jenkins-job-setup.py <option> So admin can just log in to lockbox and ansible or jenkins-job-setup.py . Maybe you should look at it.
Sounds nice but I'd say, let's not delay jenkins for that. Maybe worth making a ticket to keep the idea around (easyfix?).
Thanks for the feedback.
Pierre
On Wed, 06 Mar 2013 23:32:15 +0100 Pierre-Yves Chibon pingou@pingoured.fr wrote:
Hi all,
I have written this last week-end and I'm late...
I have started to write down some instruction on how one can get his/her project added to our jenkins server: https://fedoraproject.org/wiki/Jenkins@infra
I didn't know you could use @ in a wiki page title. ;)
We could definitely do a trac template for these requests.
Who can handle them (ie, who should get assigned to the tickets by default).
We may want to add a section about what projects are eligible. I'd say:
MUST have a license thats acceptable for Fedora itself. MUST not include any items Fedora considers forbidden. MUST have a public source repo
Any others?
And (attached) I wrote a small SOP on how we should handle this.
Looks good. What group can handle these requests? Should we have a sysadmin-jenkins?
These two documents are up for review, discussion and correction.
Looks pretty good to me.
Thanks for all the work on it!
kevin
On Thu, 2013-03-07 at 13:34 -0700, Kevin Fenzi wrote:
On Wed, 06 Mar 2013 23:32:15 +0100 Pierre-Yves Chibon pingou@pingoured.fr wrote:
Hi all,
I have written this last week-end and I'm late...
I have started to write down some instruction on how one can get his/her project added to our jenkins server: https://fedoraproject.org/wiki/Jenkins@infra
I didn't know you could use @ in a wiki page title. ;)
We could definitely do a trac template for these requests.
Who can handle them (ie, who should get assigned to the tickets by default).
I think we could just use the sysadmin-jenkins group.
We may want to add a section about what projects are eligible. I'd say:
MUST have a license thats acceptable for Fedora itself. MUST not include any items Fedora considers forbidden. MUST have a public source repo
Any others?
I think that covers the basic.
And (attached) I wrote a small SOP on how we should handle this.
Looks good. What group can handle these requests? Should we have a sysadmin-jenkins?
There is, and you are now part of it :)
Pierre
On Thu, 2013-03-07 at 13:34 -0700, Kevin Fenzi wrote:
We may want to add a section about what projects are eligible. I'd say:
MUST have a license thats acceptable for Fedora itself. MUST not include any items Fedora considers forbidden. MUST have a public source repo
Section added: https://fedoraproject.org/wiki/Jenkins@infra#Can_I_add_my_project_to_Jenkins...
Pierre
infrastructure@lists.fedoraproject.org