![Go tests](https://github.com/teutat3s/nomad-triton-driver-plugin/workflows/Go%20tests/badge.svg)
Quick start
# Clone the repo and build the driver
git clone https://github.com/teutat3s/nomad-triton-driver-plugin
cd nomad-triton-driver-plugin
make build
# Get a nomad dev server + client + triton-driver running
mkdir plugins
cp triton-driver plugins/
nomad agent -dev -config=./example/agent.hcl -plugin-dir=$(pwd)/plugins/
# In another shell
nomad job run -hcl1 example/example-docker.nomad
Original ReadMe
Nomad Skeleton Driver Plugin
Skeleton project for
Nomad task driver plugins.
This project is intended for bootstrapping development of a new task driver
plugin.
Requirements
- Nomad v0.9+
- Go v1.11 or later (to build the plugin)
Building the Skeleton Plugin
Generate
a new repository in your account from this template by clicking the Use this template
button above.
Clone the repository somewhere in your computer. This project uses
Go modules so you will need to set
the environment variable GO111MODULE=on
or work outside your GOPATH
if it
is set to auto
or not declared.
$ git clone git@github.com:<ORG>/<REPO>git
Enter the plugin directory and update the paths in go.mod
and main.go
to
match your repository path.
// go.mod
- module github.com/hashicorp/nomad-skeleton-driver-plugin
+ module github.com/<ORG>/<REPO>
...
// main.go
package main
import (
log "github.com/hashicorp/go-hclog"
- "github.com/hashicorp/nomad-skeleton-driver-plugin/hello"
+. "github.com/<REPO>/<ORG>/hello"
...
Build the skeleton plugin.
$ make build
Deploying Driver Plugins in Nomad
The initial version of the skeleton is a simple task that outputs a greeting.
You can try it out by starting a Nomad agent and running the job provided in
the example
folder:
$ make build
$ nomad agent -dev -config=./example/agent.hcl -plugin-dir=$(pwd)
# in another shell
$ nomad run ./example/example.nomad
$ nomad logs <ALLOCATION ID>
Code Organization
Follow the comments marked with a TODO
tag to implement your driver's logic.
For more information check the
Nomad documentation on plugins.