Install
Before you start
Section titled “Before you start”You need:
- A GitHub org owner, who creates and installs backmesh’s GitHub App in the browser during install.
- The
backmeshCLI. Each release ships one binary per platform, with no Node.js:darwin-arm64,darwin-x64,linux-x64andlinux-arm64. Check it against the release’schecksums.txt. - The
anycloudCLI on yourPATH, at the version the backmesh release notes pin. backmesh runs it for you; you don’t typeanycloudcommands yourself. - Docker, for the local installer API.
- A signed-in cloud CLI for each cloud you pick:
aws,gcloudoraz. - anycloud’s GitHub sign-in:
anycloud login, orGITHUB_TOKENin the environment.
TODO(owner): name the public download location for the CLI. Release assets in the private backmesh repository can’t be downloaded by customers.
Run install
Section titled “Run install”Pick one or more clouds, each with a region:
backmesh install --org acme --cloud aws:us-east-2 --cloud gcp:us-central1 --cloud azure:westus2Install then:
- Checks your sign-ins and the
anycloudversion, and names any that’s missing. - Starts anycloud’s local installer API in Docker and connects each cloud with a role from your cloud CLI session. No cloud keys are stored.
- Prints what each spot pool costs a month before any job runs, and asks before
creating anything billed. Pass
--yesto skip the question; without a terminal it’s required. - Opens a page that creates a private GitHub App for your org. The org owner creates it, then clicks Install. See the security model for its permissions.
- Creates anycloud’s API on a management VM in the first cloud you named.
- Creates
bm-control, a small VM that runs only the listener, and one spot pool per cloud,bm-<cloud>-spot. - Starts the listener and prints the label to use, then runs
backmesh status.
Done. Use `runs-on: backmesh-aws-4` in a workflow.Running install again reuses what an earlier run created.
Quotas
Section titled “Quotas”Install sizes each pool’s maximum from the cloud’s spot vCPU quota, 16 vCPUs per
VM, and names the quota increase to request when it’s low. GCP’s default
CPUS_ALL_REGIONS quota is 32 vCPUs, which holds a GCP pool to two VMs until you
raise it.
Use it in a workflow
Section titled “Use it in a workflow”Set runs-on to a label:
jobs: test: runs-on: backmesh-4 steps: - uses: actions/checkout@v5 - run: make testOnly private repositories can use the runners.