No description
Find a file
2019-11-29 18:58:03 -05:00
config finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00
hello finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00
.gitignore finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00
go.mod finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00
go.sum finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00
LICENSE initial set of files for task driver skeleton 2019-09-30 10:26:20 -05:00
main.go finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00
README.md finish initial task driver skeleton implementation 2019-11-29 18:58:03 -05:00

nomad-runtime-driver-skeleton

This project is a Hashicorp Nomad task driver plugin skeleton implementation. You can clone and modify this to get started writing your own task driver plugin.

Requirements

  • Nomad v0.9.5+
  • Go v1.11+ (to build the plugin)

Get Started

Download the project module:

go get github.com/hashicorp/nomad-skeleton-task-driver-plugin

Follow the comments marked with a TODO tag to implement your driver's logic. For more information consult the Nomad documentation on plugins.

The initial state of the skeleton is a simple task that outputs a greeting. You can try it out by starting a Nomad server and client and running the job provided in the config folder:

go build
nomad agent -dev -config=./config/client.hcl -plugin-dir=$(PWD)

# in another shell
nomad run ./config/example.nomad

You should rename the project's root folder and the hello module to fit your own driver.

Code Organization

The skeleton driver comes with an in memory task state store (see hello/state.go). This in-memory map is for storing runtime details (like a process id). The details of what to store is left to the implementation of the task driver. Fields stored in the base implementation in this skeleton can be found in the taskHandle struct.