[OpenStack-Infra] Gearman-plugin for Jenkins: support for dockerized executors

Clark Boylan cboylan at sapwetik.org
Mon Jul 25 16:30:49 UTC 2016


On Mon, Jul 25, 2016, at 05:49 AM, Foerster, Thomas (Nokia - DE/Munich)
wrote:
> Hi,
> 
> We are using the
> Gearman-plugin<https://wiki.jenkins-ci.org/display/JENKINS/Gearman+Plugin>
> (version: 0.2.0) at our Nokia's Continuous Integration environment
> together with Jenkins<https://jenkins.io/index.html> (version: 2.7.1).
> Except the Gerrit server, the entire CI environment is dockerized: Zuul
> servers, Jenkins Master instances and build executers being able to scale
> according the demand. The Gearman is being used to handle multiple
> Jenkins Master and build executers across the project.
> 
> We would like to start docker machines as build executors on demand and
> according the real CI load. However there seems to be a limitation at the
> Gearman-plugin (0.2.0), that all available build executors have to be
> know and running during plugin start-up time. Docker machines started and
> integrated to Jenkins after plugin start, won't be recognized by the
> plugin.
> 
> We found that is a known issue and documented at:
> https://wiki.jenkins-ci.org/display/JENKINS/Gearman+Plugin
> 
> === CLIP ===
> Known Issues
> Adding or removing executors on nodes will require restarting the gearman
> plugin.  This is because Jenkins does NOT provide provide a way to listen
> for changes to executors therefore the gearman plugin does not know that
> it needs to re-register functions due to executor updates.
> === CLIP ===
> 
> The Gearman-plugin seems to be still maintained.
> Do you know whether that issue has been taken up for next upcoming plugin
> release?

I do not think this has been addressed in the Gearman Plugin as it would
rely on functionality that Jenkins does not provide. When we used this
plugin we had dynamic Jenkins slaves that were added and removed from
Jenkins and doing that does cause the Gearman Plugin to update. Perhaps
you can work around this issue with your Docker executors by having
Jenkins treat them as slaves rather than just as executors?

Clark



More information about the OpenStack-Infra mailing list