[OpenStack-Infra] Nodepool extensibility

Clayton O'Neill clayton at oneill.net
Thu Aug 20 16:33:09 UTC 2015


We're using nodepool for our internal CI process and find it to be a great
tool.  We've recently made a change to our development environment build
tools to allow us to test VRRP load balancing and overlay networking inside
of instances.  We use Vagrant for building those dev environments and we've
extended it to selectively turn off Neutron port security, when needed, to
enable these features to work.

Now we find ourselves wanting to do the same thing as part of our
multi-node integration test that we use as a gate for deployments.  Jim and
I discussed this briefly at the Operator's Mid-cycle and he suggested I get
some feedback before trying to implement new functionality to fix this.
Right now I've been able to come up with three general approaches:

   1. Implement a new mechanism similar in theory to the existing "ready"
   script functionality.  The differences would be that it would allow running
   a program on the nodepool server instead of the instance that was newly
   created.  This would set environment variables to allow the external script
   to access the configured provider and make changes via API or CLI clients
   as needed before the node was added to Jenkins.
   2. Add the ability to disable port security support directly into
   Nodepool.  This has the advantage that it would automatically use the
   existing API rate limiting in nodepool.  However, it's not clear if the
   functionality we're looking for would be useful for any other existing
   users of nodepool, and this may be more work.
   3. Add an extension point using stevedore (or something similar?) that
   would allow writing plugins for this sort of behavior.  Initially I'd
   probably only add a "node ready" extension point, but it seems like this
   would be easy to extend.

Not having delved into any of these approaches deeply, I'm not sure which
is the least amount of work but I suspect it is the first option.  If
people feel strongly that this sort of thing might not be accepted into
nodepool, or have a strong opinion on a specific approach, I'd be glad to
hear it before writing any code.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-infra/attachments/20150820/14a1b287/attachment.html>


More information about the OpenStack-Infra mailing list