Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.
/ sherpa Public archive

Sherpa is a highly available, fast, and flexible horizontal job scaling for HashiCorp Nomad. It is capable of running in a number of different modes to suit different requirements, and can scale based on Nomad resource metrics or external sources.

License

Notifications You must be signed in to change notification settings

jrasell/sherpa

Repository files navigation

Sherpa

Build Status Go Report Card GoDoc

Sherpa is a highly available, fast, and flexible horizontal job scaling for HashiCorp Nomad. It is capable of running in a number of different modes to suit different requirements, and can scale based on Nomad resource metrics or external sources.

Features

  • Scale jobs based on Nomad resource consumption and external metrics: The Sherpa autoscaler can use a mixture of Nomad resource checks, and external metric values to make scaling decisions. Both are optional to provide flexibility. Jobs can also be scaled via the CLI and API in either a manual manner, or by using webhooks sent from external applications such as Prometheus Alertmanager.
  • Highly available and fault tolerant: Sherpa performs leadership locking and quick fail-over, allowing multiple instances to run safely. During availability issues, or deployment Sherpa servers will gracefully handle leadership changes resulting in uninterrupted scaling.
  • Operator friendly: Sherpa is designed to be easy to understand and work with as an operator. Scaling state in particular can contain metadata, providing insights into exactly why a scaling activity took place. A simple UI is also available to provide an easy method of checking scaling activities.

Download & Install

  • The Sherpa binary can be downloaded from the GitHub releases page using curl -L https://github.com/jrasell/sherpa/releases/download/v0.4.2/sherpa_0.4.2_linux_amd64 -o sherpa

  • A docker image can be found on Docker Hub, the latest version can be downloaded using docker pull jrasell/sherpa.

  • Sherpa can be built from source by cloning the repository git clone github.com/jrasell/sherpa.git and then using the make build command.

Documentation

Please refer to the documentation directory for guides to help with deploying and using Sherpa in your Nomad setup.

Contributing

Contributions to Sherpa are very welcome! Please reach out if you have any questions.

Contributors

Thanks to everyone who has contributed to this project.

@jvineet @josegonzalez @pmcatominey @numiralofe @commarla @hobochili

About

Sherpa is a highly available, fast, and flexible horizontal job scaling for HashiCorp Nomad. It is capable of running in a number of different modes to suit different requirements, and can scale based on Nomad resource metrics or external sources.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages