github.com/ferranbt/nomad@v0.9.3-0.20190607002617-85c449b7667c/website/source/docs/internals/plugins/index.html.md (about) 1 --- 2 layout: "docs" 3 page_title: "Plugins" 4 sidebar_current: "docs-internals-plugins" 5 description: |- 6 Learn about how external plugins work in Nomad. 7 --- 8 9 # Plugins 10 11 Nomad 0.9 introduced a plugin framework which allows users to extend the 12 functionality of some components within Nomad. The design of the plugin system 13 is inspired by the lessons learned from plugin systems implemented in other 14 HashiCorp products such as Terraform and Vault. 15 16 The following components are currently pluggable within Nomad: 17 18 - [Task Drivers](/docs/internals/plugins/task-drivers.html) 19 - [Devices](/docs/internals/plugins/devices.html) 20 21 # Architecture 22 23 The Nomad plugin framework uses the [go-plugin][goplugin] project to expose 24 a language independent plugin interface. Plugins implement a set of gRPC 25 services and methods which Nomad manages by running the plugin and calling the 26 implemented RPCs. This means that plugins are free to be implemented in the 27 author's language of choice. 28 29 To make plugin development easier, a set of go interfaces and structs exist for 30 each plugin type that abstract away go-plugin and the gRPC interface. The 31 guides in this documentation reference these abstractions for ease of use. 32 33 [goplugin]: https://github.com/hashicorp/go-plugin