I don't know how the custom drivers were originally designed. However in the spirit of unix philosophy of having a tool that does one thing very well we could have binaries as drivers. Ideally those binaries would be in a well known folder either as links of the files themselves and they would reply to several command passed as first argument and extra data comming from standard input. This would enable an interaction pattern for highly customized drivers to enrich cluster control.
The use case I'm thinking of is related to security, consider a secured-docker binary that is a docker socket middleware filtering execution requests to only run images that have been audited by a static code analysis tool. This could also enable transparent additions to append business needs into the custom driver like service discovery autoregister of the job process or notifications and hooks for chatops.
My greatest interest is in the ability to enrich execution control with a very simple patterns. Please let me know if it's unclear what I suggest.
Your suggestion was great and it is something we recognize. We plan on adding plugins for drivers similar to how Terraform implements them in a future release of Nomad.
Hello @dadgar do you have a roadmap for releasing plugin for drivers?
Hey @kaskavalci it is not something we are actively working on at the moment
Any news on development of this feature at all?
Hey no development news but still on the roadmap
Interested on this a lot.
Thanks @dadgar for linking me here - looking forward to this feature. Any ETA?
@vin047 It is planned for 0.9
@dadgar would this provide/allow for generic binaries/executables as drivers, or only binaries built with golang?
0.9 beta is now available with support for custom external plugins for both drivers and devices. You can find the documentation for this https://www.nomadproject.io/docs/drivers/external/index.html, and an example implementation here: https://github.com/hashicorp/nomad-driver-lxc.
Thank you for your interest - We're excited to see what you build!
Most helpful comment
@vin047 It is planned for 0.9