<div dir="ltr">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.<div><br></div><div>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:</div><div><ol><li>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.</li><li>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.</li><li>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.</li></ol><div>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.</div></div><div><br></div><div><br></div></div>