Several accounts

Run one CI's jobs in several AWS accounts, Cloudflare accounts or Modal workspaces, each with its own limits and spend

One CI can run jobs in several accounts of a provider: two AWS accounts, two Cloudflare accounts, or two Modal workspaces. Each gets its own runner, with its own place in the order, limits and spend.

Workflows do not change. superci/provider=modal means every Modal runner, in the order’s order.

Add one

Sign in, then add its runner:

superci login modal --add
superci runners create modal --account=WORKSPACE [--name=WORD]

superci login aws --add
superci runners create aws --account=ACCOUNT_ID --region=us-east-1 [--name=WORD]

superci runners create cloudflare --account=ACCOUNT_ID [--name=WORD]

One Cloudflare sign-in reaches every account its login can. Modal and AWS take one sign-in per workspace or account. Add a provider in the dashboard offers each one you are signed in to.

Its word

A further runner has one word, used in commands and shown in the dashboard. Without --name it is the provider and the account’s name: modal-staging, aws-123456789012, cloudflare-acme. An AWS account also gets <word>-on-demand, as aws has aws-on-demand.

A word stays for good, and it stays with its account. Deleting a runner keeps its record, so what it spent still counts toward its account’s limit; adding that account again brings the same word back.

Limits

superci runners update modal-staging --max-jobs=5 --monthly-usd=25
superci accounts update modal-staging --monthly-usd=100 --daily-usd=10

A runner’s limit is its own. An account’s counts all its runners. When one is reached, jobs go to the next runner in the order.

What stays shared

  • The cache. A CI has one cache, in its first AWS account. Machines in a further AWS account reach it by signed links, so they share its hits, and what they cache is kept in the first account. Add further accounts with the first one signed in too, so the cache is set up in their regions; otherwise those jobs use GitHub’s cache there.
  • The AWS budget (in the account’s own billing) is for the first account.
  • Cloudflare’s location and image are one setting, for all its accounts.

Keeping them up to date

superci planes update, planes move and planes delete handle each account with its own sign-in, and say which they could not reach. Sign in there and run it again.