[OpenStack-Infra] Nodepool v3 shim for talking to v2 zuul

James E. Blair corvus at inaugust.com
Mon Jan 16 17:48:19 UTC 2017


Clint Byrum <clint at fewbar.com> writes:

> Are the jobs so complicated that you can't just write a dedicated gearman
> worker to do the translation to/from zk? I mean, gearman is really really
> really simple for a reason.
>
> Just saying.. might be simpler to write a throw-away 500 line python gear
> worker, than modifying nodepool. And you know how against rewrites I am,
> but in this case.. it's not a rewrite, but a shim.

That would be easy, but there are no jobs to reimplement in that way.
The current version of nodepool is not a gearman worker, rather it is a
gearman administrative client which inspects the status of the gearman
queue to infer whether there are enough nodes on-line to satisfy the
demand based on guesses it makes as to which jobs it expects to run on
each of the available image types.

Notably, there is no zuul -> nodepool request process.  That is what
we're adding in v3.  And with good reason.

In order for the current version of nodepool to operate, it requires a
significant amount of state information which it uses in the (rather
complex) calculations it performs to decide when, where, and which nodes
to launch.

I believe that by modifying nodepool to replace the relatively simple
(thanks to shade) "request a node from the cloud" bit with "request a
node from v3 nodepool", Monty will be making the minimal change needed
to create the shim.  Anything else likely involves a change to the
complex side-channel interactions that nodepool performs now.

-Jim



More information about the OpenStack-Infra mailing list