[OpenStack-Infra] Nodepool drivers
Tristan Cacqueray
tdecacqu at redhat.com
Thu Jun 1 09:19:46 UTC 2017
On May 31, 2017 7:40 pm, Clark Boylan wrote:
> On Sun, May 28, 2017, at 07:39 PM, Tristan Cacqueray wrote:
>> Hi,
>>
>> With the nodepool-drivers[0] spec approved, I started to hack a quick
>> implementation[1]. Well I am not very familiar with the
>> nodepool/zookeeper
>> architecture, thus this implementation may very well be missing important
>> bits... The primary goal is to be able to run ZuulV3 with static nodes,
>> comments and feedbacks are most welcome.
>>
>> Moreover, assuming this isn't too off-track, I'd like to propose an
>> OpenContainer and a libvirt driver to diversify Test environment.
>>
>> Thanks in advance,
>> -Tristan
>>
>> [0]:
>> http://specs.openstack.org/openstack-infra/infra-specs/specs/nodepool-drivers.html
>> [1]: https://review.openstack.org/#/q/topic:nodepool-drivers
>
> I've briefly looked through the stack and left some comments on changes.
>
Thank you for looking through this proposal!
> Would help if the nodepool-drivers topic is on all the changes (I didn't
> update the topics as I wasn't sure if this was intentional or not).
>
Oops, topic got reset on patch update, it wasn't intentional.
> Overall this looks good. There are a few things that come up though. I
> think we need to clearly define what the handlers and providers do so
> that it is clear in the implementation. Right now it appears that they
> share a lot of responsibility and you end up with different drivers
> splitting those two classes differently.
>
Indeed, so far the driver interface is:
NodeRequestHandler.run_handler() : Process node request
provides abstraction for polling over PoolWorker.
Implementation have access to self.provider, self.pool, self.zk and
self.manager
NodeLaunchManager.launch(): Asynchronous node launcher
provides abstraction for request handler's thread creation.
ProviderManager: provides abstraction for provider configuration and management
start, stop, join(): Manage the provider
labelReady(): Query the provider for label availability
listNodes(): List nodes
cleanupNodes()/waitForNodeCleanup(): Node management
> We also need to clearly communicate the behavior of different drivers
> when it comes to running multiple launchers. Do we expect that each
> launcher is a standalone spof and manages resources completely
> independent of the other launchers or do we want to allow for
> coordination between launchers via zookeeper so that we have redundancy.
> I don't think we need to solve redundancy right away, we just need to be
> clear to users (and devs modifying drivers) what the expectation is for
> each driver.
>
As far as I can tell, RequestHandler are independent and they decline
requests it can't fullfill. Not sure how they could coordinate between
each others though.
> Hope this helps,
> Clark
>
It helped, thanks!
-Tristan
> _______________________________________________
> OpenStack-Infra mailing list
> OpenStack-Infra at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-infra/attachments/20170601/e030344c/attachment.sig>
More information about the OpenStack-Infra
mailing list