2.8 KiB
Speedrun
Speedrun helps you control your compute fleet with minimal effort.
Example (stop nginx across 3k machines):
speedrun service stop nginx
Features:
- stateless
- serverless
- idempotent
- no complex configuration required
- server discovery via native cloud integration (currently Google Cloud only, AWS and Azure coming up!)
- extensible (plugin system is in the works)
Installation
MacOS, Linux, Windows
Download the precompiled binaries from here: Releases
Usage
Quickstart
On a server:
sudo ./portal --insecure
On your machine:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/serviceaccount.json
speedrun init
speedrun run whoami --insecure
Architecture
-
picture first here
-
speedrun client
-
portal
-
protocols
-
service discovery
-
language definition expr/Language-Definition.md at master · antonmedv/expr · GitHub
Examples
Stop Nginx on VMs that have a label role with value nginx and a label named project with value someproject
speedrun service stop nginx --target "labels.role == 'nginx' and labels.project == 'someproject'"
Run arbitrary shell command on the target machines. Ignore Portal's certificate and connect via private IP address.
speedrun run "ls -la" --target "labels.env != 'prod'" --insecure --use-private-ip
Use a different config file
speedrun run whoami -c /path/to/config.toml
Configuration
Instead of supplying certain flags repeatedly you can persist their behavior in the config file. Default config file is located at ~/.speedrun/config.toml and default settings can be fetched via speedrun init --print.
Run portal as a systemd unit
Use self signed certificates during testing
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
Community & Support
Join the #Speedrun channel on Discord to chat and ask questions 😃