This repository manages Nomad Packs for @workloads.
| Pack Name | Description | Task Driver(s) |
|---|---|---|
boundary_worker |
HCP Boundary Workers | exec1, raw_exec2 |
datadog_agent |
Datadog Agents | raw_exec2 |
flagd |
OpenFeature flagd (Docker, Podman) |
docker3, podman4 |
hello_world |
Nomad feature-testing | exec1, raw_exec2 |
minecraft_bedrock_edition |
Minecraft (Bedrock Edition) | docker3, podman4 |
minecraft_java_edition |
Minecraft (Java Edition) | docker3, podman4 |
rcon_web |
RCON Web (for Minecraft etc.) | docker3, podman4 |
- HashiCorp Nomad
1.7.xor newer - HashiCorp Nomad Pack
0.1.xor newer - a copy of @workloads/tooling
For development and testing of this repository:
This repository provides a Makefile-based workflow.
Running make without commands will print out the following help information:
env create Nomad environment for testing `make env pack=<pack>`
render render a Nomad Pack `make render pack=<pack>`
run run a Nomad Pack `make run pack=<pack>`
rerun destroy and run a Nomad Pack `make rerun pack=<pack>`
stop stop a running Nomad Pack `make stop pack=<pack>`
test test a running Nomad Pack `make test pack=<pack>`
restart restart a Task `make restart task=<task>`
format format HCL files for all Nomad Packs `make format`
docs generate documentation for all Nomad Packs `make docs`
registry add Nomad Pack Registry to local environment `make registry`
help display a list of Make Targets `make help`
_listincludes list all included Makefiles and *.mk files `make _listincludes`
_selfcheck lint Makefile `make _selfcheck`
This Nomad Pack Registry may be added to an environment like so:
make registryFor more information see developer.hashicorp.com.
Nomad Packs are stored in the ./packs directory and feature detailed documentation and accompanying files.
A Nomad Pack may be run like so:
make run pack=<pack>The Nomad Packs in this Registry provide a test harness that may be used to verify the functionality of the Pack.
The harness is exposed through the make env and make test targets:
make envstarts a Nomad environment, using the configuration stored inside the Pack's./tests/nomad_config.hclfile.make testruns a Postman Collection, using the requests stored inside the Pack's./tests/newman.jsonfile.
The make env command automatically creates any directories and variables that are set in ./tests/test.mk.
Additionally, ./tests/gitignored_config.mk may be used to set sensitive variables, such as API tokens, that should not be committed to version control.
- Colorized CLI output may be disabled by setting the
NO_COLORenvironment variable to any non-empty value.
export NO_COLOR=1 && make- For
nomad-packarguments that are not supported by the Makefile, theARGSvariable may be used like so:
make render pack=<pack> ARGS="--render-output-template"- The binaries for
nomadandnomad-packmay be overridden by setting theBINARY_NOMADandBINARY_NOMAD_PACKarguments when running the Makefile:
# override `nomad` binary
make render pack=<pack> BINARY_NOMAD=/tmp/nomad
# override `nomad-pack` binary
make render pack=<pack> BINARY_NOMAD_PACK=/tmp/nomad-pack- The reporter for
newmanmay be overridden by setting theNEWMAN_REPORTERSargument when running the Makefile:
# override `newman` reporter
make render pack=<pack> NEWMAN_REPORTERS="progress"For a list of current (and past) contributors to this repository, see GitHub.
Licensed under the Apache License, Version 2.0 (the "License").
You may download a copy of the License at apache.org/licenses/LICENSE-2.0.
See the License for the specific language governing permissions and limitations under the License.