mirror of
https://github.com/kemko/nomad.git
synced 2026-01-07 02:45:42 +03:00
* Update for search engine optimization * Update descriptions and add intro body summary paragraph * Apply suggestions from code review Co-authored-by: Jeff Boruszak <104028618+boruszak@users.noreply.github.com> --------- Co-authored-by: Jeff Boruszak <104028618+boruszak@users.noreply.github.com>
34 lines
1.3 KiB
Plaintext
34 lines
1.3 KiB
Plaintext
---
|
|
layout: docs
|
|
page_title: Plugins
|
|
description: Learn how Nomad's task and device driver plugins extend a workload's supported functions.
|
|
---
|
|
|
|
# Plugins
|
|
|
|
This page provides conceptual information on task and device driver plugins.
|
|
|
|
Nomad implements a plugin framework which lets you extend the
|
|
functionality of some components within Nomad. The design of the plugin system
|
|
is inspired by the lessons learned from plugin systems implemented in other
|
|
HashiCorp products such as Terraform and Vault.
|
|
|
|
The following components are currently pluggable within Nomad:
|
|
|
|
- [Task Drivers](/nomad/docs/concepts/plugins/task-drivers)
|
|
- [Devices](/nomad/docs/concepts/plugins/devices)
|
|
|
|
## Architecture
|
|
|
|
The Nomad plugin framework uses the [go-plugin][goplugin] project to expose
|
|
a language independent plugin interface. Plugins implement a set of gRPC
|
|
services and methods which Nomad manages by running the plugin and calling the
|
|
implemented RPCs. This means that plugins are free to be implemented in the
|
|
author's language of choice.
|
|
|
|
To make plugin development easier, a set of go interfaces and structs exist for
|
|
each plugin type that abstract away go-plugin and the gRPC interface. The
|
|
guides in this documentation reference these abstractions for ease of use.
|
|
|
|
[goplugin]: https://github.com/hashicorp/go-plugin
|