outtasync helps users quickly identify the CloudFormation stacks that have
gone out of sync with the state represented by their counterpart stack files.
This can occur when someone updates a stack but fails to commit the latest stack
file to the codebase. Alternatively, it may happen when a stack is updated on
one deployment environment but not on others. 🤷
💾 Installation
homebrew:
brew install dhth/tap/outtasync
go:
go install github.com/dhth/outtasync@latest
🛠️ Pre-requisites
git (used to show the diff for out-of-sync changes)
outtasync doesn’t change or override git’s pager, so the diff will
follow your .gitconfig settings (if present).
🛠️ Configuration
Create a configuration file that looks like the following. By default,
outtasync will look for this file at ~/.config/outtasync.yml.
Note: The globalRefreshCommand and refreshCommand settings are only needed
if you want to invoke the command that refreshes your AWS credentials via the
TUI directly.
⚡️ Usage
outtasync can run in two modes: A TUI mode (ideal for running locally), and a
CLI mode (ideal for running in a CI pipeline). TUI mode is the default.
TUI Mode
outtasync
outtasync -config-file /path/to/config.yml
outtasync -profiles qa,prod
outtasync -p '<regex-pattern-for-stack-names>'outtasync -p '.*(qa|staging)$'outtasync -c # to check status for all stacks on startup
CLI Mode
outtasync -mode=cli
This will print an output like the following to stdout.
2 stacks are outtasync:
qa:eu-central-1:bingo-service-qa
prod:eu-central-1:galactus-service-prod
Downloading in a CI pipeline
outtasync can be downloaded from Github releases and used as follows:
curl -s -OL https://github.com/dhth/outtasync/releases/download/v0.3.0/outtasync_v0.3.0_linux_amd64.tar.gz
tar -xzvf outtasync_v0.3.0_linux_amd64.tar.gz
./outtasync -mode=cli
⌨️ Keymaps
↑/k up
↓/j down
→/l/pgdn next page
←/h/pgup prev page
g/home go to start
G/end go to end
ctrl+f/enter check status
a check status for all
r refresh aws credentials
ctrl+d/v show diff
o filter outtasync stacks
i filter in-sync stacks
e filter stacks with errors
q return to previous page/quit
/ filter
? show/close help
Screenshots
TODO
Add a command to generate a sample config file
Add CLI mode
Acknowledgements
outtasync is built using the awesome TUI framework bubbletea.