nomad-pack

command module
v0.0.1-techpreview1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2021 License: MPL-2.0 Imports: 3 Imported by: 0

README

Nomad Pack

Nomad Pack is currently a Tech Preview.

Nomad Pack is a templating and packaging tool used with HashiCorp Nomad.

Nomad Pack is used to:

  • Easily deploy popular applications to Nomad
  • Re-use common patterns across internal applications
  • Find and share job specifications with the Nomad community

Usage

Dependencies

Nomad Pack users must have Nomad running and accessible at the address defined in the NOMAD_ADDR environment variable.

If Nomad ACLs are enabled, a token with proper permissions must be defined in the NOMAD_TOKEN environment variable.

Basic Use

First, run the registry list command to see which packs are available to deploy.

nomad-pack registry list

To deploy one of these packs, use the run command. This deploys each jobs defined in the pack to Nomad. To deploy the hello_world pack, you would run the following command:

nomad-pack run hello_world

Each pack defines a set of variables that can be provided by the user. To get information on the pack and to see which variables can be passed in, run the info command.

nomad-pack info hello_world

Values for these variables are provided using the --var flag.

nomad-pack run hello_world --var message=hola

Values can also be provided by passing in a variables file. See the variables section of the Detailed usage guide for details.

tee -a ./my-variables.hcl << END
message=bonjour
END

nomad-pack run hello_world -f ./my-variables.hcl

If you want to remove all of the resources deployed by a pack, run the destroy command with the pack name.

nomad-pack destroy hello_world
Adding Non-Default Pack Registries

When using Nomad Pack, the default registry for packs is the Nomad Pack Community Registry. Packs from this registry will be made automatically availible.

You can add additional registries by using the registry add command. For instance, if you wanted to add an example Gitlab registry, you would run the following command to download the registry.

nomad-pack registry add example gitlab.com/mikenomitch/pack-registry

To view the packs you can now deploy, run the registry list command.

nomad-pack registry list

Packs from this registry can now be deployed using the run command.

Writing your own Packs

Nomad Pack is valuable when used with official and community packs, but many users will also want to use their own.

Converting your existing Nomad job specifications into reusable packs is achievable in a few steps, see the Writing Packs documentation for more details.

Pack Registries

Packs are organized into "registries" which contain multiple packs and shared templates.

The Nomad Pack Community Registry is a public registry for community-maintained packs. Nomad community members are encouraged to share their packs and collaborate with one anothr in this repo.

Pull Requests and feedback on both repositories are welcome!

Upcoming Features and Changes

  • Support for Volumes and ACLs
  • Support for other Vesion Control Systems
  • Pack search command
  • Integration into the official Nomad CLI

Additional Documentaion

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
pkg/spinner
Package spinner is a simple package to add a spinner / progress indicator to any terminal application.
Package spinner is a simple package to add a spinner / progress indicator to any terminal application.
sdk
Package terminal is used by plugins to read and write to a terminal UI.
Package terminal is used by plugins to read and write to a terminal UI.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL