Quick Terraform actions across multiple projects.
Written in Go.
You have multiple Terraform projects, but they're prototypes, quick tests, and don't warrant a dedicated deployment pipeline. So, you need to work with them manually via the command line.
You want to quickly validate/plan/apply
projects without constantly changing to different project directories.
You need to run apply
on multiple projects at the same time because your latest code changes affect both services, and you don't want to forget to push one without the other.
Tarragon is a TUI application that lets you select multiple projects to perform simultaneous Terraform actions on.
If you have Go installed, run:
go install github.com/sho-87/tarragon@latest
Otherwise, you can download the application for your operating system on the Releases page.
Tarragon is designed to work with related projects, so assumes that your projects are nested somewhere inside a common parent directory. Example:
Services
|--- Project1
|--- Project2
|--- OtherService
|--- Project3
First, make sure the Tarragon executable is available on your path, or otherwise callable from your command line.
Run tarragon
in your command line, which will bring up the UI and find all nested projects from your current working directory.
You can also supply a different root directory using tarragon --path "path/to/projects"
(full list of keybinds can be found using ?
)
Run validate/plan/apply
actions using v
, p
, and a
on a highlighted project.
You can select multiple projects using space
and run actions on them at the same time using the capitalized keybinds V
, P
, and A
.
Note: apply
will always run with the --auto-approve
flag, so it's recommend to first run plan
on the project and check the output.
After running any Terraform command on a project, you can view the most recent output by pressing tab
:
You can filter the projects table by pressing /
, which will bring up an input field for the filter term: