~ knotless Search/
↑↓ move↵ open⇧↵ all results

chadtmiller.com/knotless

git that lives in your Atmosphere account

knotless.dev
1 collaborator

knotless 0.13.0 Latest 2 packages, 1 image

1
10

The runner host runs three jobs, on a dedicated AX41

Closed chadtmiller.com asked to merge into main from chadtmiller.com/knotless:deploy/runner-on-ax41
.knotless/workflows/deploy.yml+2−2
@@ -80,9 +80,9 @@ env:
KNOTLESS_RUNNER_HOST: root@runner.knotless.dev
KNOTLESS_RUNNER_DOMAIN: runner.knotless.dev
KNOTLESS_RUNNER_DID: did:plc:4bocpkn5zkwe4wuu4plrj5kt
KNOTLESS_RUNNER_ARGS: --queue --pulls-only chadtmiller.com/knotless --unmetered did:plc:bcgltzqazw5tb6k2g3ttenbj --unmetered did:plc:e7rftrdyz5e2rw4y6ocszew2 --trust did:plc:bcgltzqazw5tb6k2g3ttenbj --trust did:plc:e7rftrdyz5e2rw4y6ocszew2 --pull-jobs 2
KNOTLESS_RUNNER_ARGS: --queue --pulls-only chadtmiller.com/knotless --unmetered did:plc:bcgltzqazw5tb6k2g3ttenbj --unmetered did:plc:e7rftrdyz5e2rw4y6ocszew2 --trust did:plc:bcgltzqazw5tb6k2g3ttenbj --trust did:plc:e7rftrdyz5e2rw4y6ocszew2 --pull-jobs 3
KNOTLESS_RUNNER_CPUS: "4"
KNOTLESS_RUNNER_JOBS: "2"
KNOTLESS_RUNNER_JOBS: "3"
KNOTLESS_RUNNER_MEMORY: "7"
# The oldest client this asks for: 0.6.0 deletes a deleted ref's record
# and starts a new ref at the time, and an older client making a branch
deploy/runner-host/README.md+10−8
@@ -162,8 +162,8 @@ CPU from serve. Its pushes, its merge queue's batches and its deploy stay
on the main host, where the deploy's key is. In `deploy/local.env`:
```sh
KNOTLESS_RUNNER_ARGS="--queue --pulls-only chadtmiller.com/knotless --unmetered did:plc:bcgltzqazw5tb6k2g3ttenbj --trust did:plc:bcgltzqazw5tb6k2g3ttenbj --pull-jobs 2"
KNOTLESS_RUNNER_JOBS=2
KNOTLESS_RUNNER_ARGS="--queue --pulls-only chadtmiller.com/knotless --unmetered did:plc:bcgltzqazw5tb6k2g3ttenbj --trust did:plc:bcgltzqazw5tb6k2g3ttenbj --pull-jobs 3"
KNOTLESS_RUNNER_JOBS=3
KNOTLESS_RUNNER_MEMORY=7
KNOTLESS_RUNNER_CPUS=4
```
@@ -176,12 +176,12 @@ not gVisor: under gVisor its `test` took 18 minutes to the main host's
sandbox anyway. Anyone else's pull, run once the owner asks, is under
gVisor as on any repository here. They count
against no allowance and may take every job, past `--owner-jobs`.
`--pull-jobs 2` lets pulls take both jobs, not half: here nearly
`--pull-jobs 3` lets pulls take every job, not half: here nearly
everything is a pull. Its `test` workflow builds every test binary with
coverage and starts PDSes, which takes more than the default 3 GiB a run:
past it the sandbox is killed (`containerManager.WaitPID failed: EOF` in
the log, an OOM kill of `gvisor_sentry` in `dmesg`). So two jobs of 7 GiB and 4 CPUs
each, on an 8-core, 16 GB host, rather than four that each fail. Within
the log, an OOM kill of `gvisor_sentry` in `dmesg`). So three jobs of 7 GiB and 4 CPUs
each, on a dedicated 6-core, 12-thread, 64 GB host (an AX41), rather than more that each fail. Within
them, cargo would still start a rustc for each of the host's 8 cores, and
knotless-serve's takes near 3 GiB under coverage: `harness/cov.mjs` builds
as many crates at once as the cgroup's CPUs, and one for each 2.5 GiB of
@@ -238,9 +238,11 @@ KNOTLESS_RUNNER_DEPLOY_FROM="178.104.222.99,2a01:4f8:c015:4df4::/64" \
host. Tenants' secrets are not offered yet.
- **Disk:** images unused for a week are pruned daily; caches are bounded
by `--cache-max` (16 GiB); checkouts go as their runs end.
- **Grow:** when checks wait long for a job on most days, rescale the
server to a CX53 (16 vCPU, 32 GB) in the Hetzner console: a reboot, the
disk kept. Then raise `KNOTLESS_RUNNER_JOBS` to 8 and deploy again.
- **Move:** run `setup.sh` on the new host, with the deploy key. Point
`runner.knotless.dev` at it, stop the old runner, copy `/etc/knotless/run.env`,
`run-secrets.json` and `paused.json`, `/var/lib/knotless-run`'s `state.json`,
`secrets-key.json`, `bots` and `config`, and `/var/lib/knotless-serve`, then
run `deploy.sh`. Caches build again on the first pull.
## Not yet