{"id":13564818,"url":"https://github.com/hashicorp/levant","last_synced_at":"2025-05-12T17:24:05.454Z","repository":{"id":37377699,"uuid":"102973506","full_name":"hashicorp/levant","owner":"hashicorp","description":"An open source templating and deployment tool for HashiCorp Nomad jobs","archived":false,"fork":false,"pushed_at":"2025-04-15T03:34:07.000Z","size":103906,"stargazers_count":836,"open_issues_count":84,"forks_count":125,"subscribers_count":32,"default_branch":"main","last_synced_at":"2025-05-12T17:23:53.883Z","etag":null,"topics":["continuous-deployment","go","golang","hashicorp","hashicorp-nomad","nomad","nomad-job","templating"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hashicorp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2017-09-09T17:41:09.000Z","updated_at":"2025-04-21T20:19:59.000Z","dependencies_parsed_at":"2023-11-11T04:26:03.981Z","dependency_job_id":"50e499fd-99ff-43fe-98fd-382d739eb857","html_url":"https://github.com/hashicorp/levant","commit_stats":{"total_commits":371,"total_committers":53,"mean_commits":7.0,"dds":0.6253369272237197,"last_synced_commit":"4cc7f75250a989edae097fb844112e42ca1fd6e8"},"previous_names":["jrasell/levant"],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Flevant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Flevant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Flevant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hashicorp%2Flevant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hashicorp","download_url":"https://codeload.github.com/hashicorp/levant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253785374,"owners_count":21963946,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["continuous-deployment","go","golang","hashicorp","hashicorp-nomad","nomad","nomad-job","templating"],"created_at":"2024-08-01T13:01:36.528Z","updated_at":"2025-05-12T17:24:05.423Z","avatar_url":"https://github.com/hashicorp.png","language":"Go","readme":"# Levant\n\n[![Build Status](https://circleci.com/gh/hashicorp/levant.svg?style=svg)](https://circleci.com/gh/hashicorp/levant) [![Discuss](https://img.shields.io/badge/discuss-nomad-00BC7F?style=flat)](https://discuss.hashicorp.com/c/nomad)\n\nLevant is an open source templating and deployment tool for [HashiCorp Nomad][] jobs that provides\nrealtime feedback and detailed failure messages upon deployment issues.\n\n## Features\n\n- **Realtime Feedback**: Using watchers, Levant provides realtime feedback on Nomad job deployments\n  allowing for greater insight and knowledge about application deployments.\n\n- **Advanced Job Status Checking**: Particularly for system and batch jobs, Levant ensures the job,\n  evaluations and allocations all reach the desired state providing feedback at every stage.\n\n- **Dynamic Job Group Counts**: If the Nomad job is currently running on the cluster, Levant dynamically\n  updates the rendered template with the relevant job group counts before deployment.\n\n- **Failure Inspection**: Upon a deployment failure, Levant inspects each allocation and logs information\n  about each event, providing useful information for debugging without the need for querying the cluster\n  retrospectively.\n\n- **Canary Auto Promotion**: In environments with advanced automation and alerting, automatic promotion\n  of canary deployments may be desirable after a certain time threshold. Levant allows the user to\n  specify a `canary-auto-promote` time period, which if reached with a healthy set of canaries,\n  automatically promotes the deployment.\n\n- **Multiple Variable File Formats**: Currently Levant supports `.json`, `.tf`, `.yaml`, and `.yml`\n  file extensions for the declaration of template variables.\n\n- **Auto Revert Checking**: In the event that a job deployment does not pass its healthy threshold\n  and the job has auto-revert enabled; Levant tracks the resulting rollback deployment so you can\n  see the exact outcome of the deployment process.\n\n## Download \u0026 Install\n\n- Official Levant binaries can be downloaded from the [HashiCorp releases site][releases-hashicorp].\n\n- Levant can be installed via the go toolkit using `go get github.com/hashicorp/levant \u0026\u0026 go install github.com/hashicorp/levant`\n\n- A docker image can be found on [Docker Hub][levant-docker]. The latest version can be downloaded\n  using `docker pull hashicorp/levant`.\n\n- Levant can be built from source by firstly cloning the repository `git clone git://github.com/hashicorp/levant.git`.\n  Once cloned, a binary can be built using the `make dev` command which will be available at\n  `./bin/levant`.\n\n- There is a [Levant Ansible role][levant-ansible] available to help installation on machines. Thanks\n  to @stevenscg for this.\n\n- Pre-built binaries of Levant from versions 0.2.9 and earlier can be downloaded from the [GitHub releases page][releases] page. These binaries were released prior to the migration to the HashiCorp organization. For example: `curl -L https://github.com/hashicorp/levant/releases/download/0.2.9/linux-amd64-levant -o levant`\n\n## Templating\n\nLevant includes functionality to perform template variables substitution as well as trigger built-in\ntemplate functions to add timestamps or retrieve information from Consul. For full details please\nconsult the [templates][] documentation page.\n\n## Commands\n\nLevant supports a number of command line arguments which provide control over the Levant binary. For\ndetail about each command and its supported flags, please consult the [commands][] documentation page.\n\n## Clients\n\nLevant utilizes the Nomad and Consul official clients and configuration can be done via a number of\nenvironment variables. For detail about these please read through the [clients][] documentation page.\n\n## Contributing\n\nCommunity contributions to Levant are encouraged. Please refer to the [contribution guide][] for\ndetails about hacking on Levant.\n\n[clients]: ./docs/clients.md\n[commands]: ./docs/commands.md\n[templates]: ./docs/templates.md\n[contribution guide]: https://github.com/hashicorp/levant/blob/master/.github/CONTRIBUTING.md\n[hashicorp nomad]: https://www.nomadproject.io/\n[releases]: https://github.com/hashicorp/levant/releases\n[levant-docker]: https://hub.docker.com/r/hashicorp/levant/\n[levant-ansible]: https://github.com/stevenscg/ansible-role-levant\n[releases-hashicorp]: https://releases.hashicorp.com/levant/\n","funding_links":[],"categories":["Go","golang","Repositories","CI / CD","DevOps tools"],"sub_categories":["User Interfaces and Dashboards"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Flevant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashicorp%2Flevant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashicorp%2Flevant/lists"}