Speedrun
Speedrun executes commands, at scale.
Features:
- native cloud integration (currently Google Cloud only, AWS and Azure coming up!)
- stateless and agentless
- no complex configuration required
Installation
Download the precompiled binary from here:
curl https://github.com/dpogorzelski/speedrun/releases/tag/0.1.0
Usage
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/serviceaccount.json
speedrun init
speedrun key new
speedrun key set
speedrun run whoami
Examples
Use 1000 concurrent SSH workers
speedrun run "uname -r" --concurrency 1000
Stop Nginx on VMs matching the filter
speedrun run sudo systemctl stop nginx --filter "labels.env=staging AND labels.app=foobar"
Ignore SSH fingerprint mismatch and connect via private IP addresses
speedrun run "ls -la" --filter "labels.env != prod" --ignore-fingerprint --concurrency 1000 --use-private-ip
Use a different config file
speedrun run whoami -c /path/to/config.toml
Set public key on specific instances instead of project metadata (useful if instances are blocking project wide keys):
speedrun key set --filter "labels.env = dev"
Configuration
Using certain flags repeteadly can be annoying, it's possible to persist their behavior via config file. Default config file is located at ~/.speedrun/config.toml and can be re-initialized to it's default form via speedrun init.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Project Status
This project is in a very early stage so expect a lot of breaking changes in the nearest future