> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tensorlake.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Choose runner resources

> Select a runner size or specify CPU, memory, and disk with workflow labels.

Choose the resources for each job with `runs-on`. Tensorlake supports Linux x64 runners with Ubuntu 22.04 and Docker; use setup actions to install your language toolchain.

## Preconfigured sizes

Use one of these labels for a predefined size. Memory and disk use gibibytes (GiB).

| Label               | vCPUs | Memory | Writable disk |
| ------------------- | ----: | -----: | ------------: |
| `tensorlake-small`  |     2 |  4 GiB |        10 GiB |
| `tensorlake-medium` |     4 |  8 GiB |        50 GiB |
| `tensorlake-large`  |     8 | 16 GiB |       100 GiB |
| `tensorlake-xlarge` |    16 | 32 GiB |       100 GiB |

For example, request 8 vCPUs and 16 GiB of memory:

```yaml theme={null}
runs-on: tensorlake-large
```

The label `tensorlake` alone selects the small size. You don’t need to include `self-hosted`.

## Custom sizes

Use `tensorlake` with all three resource labels to choose a custom size. This example requests 6 vCPUs, 12 GiB of memory, and 60 GiB of writable disk:

```yaml theme={null}
runs-on:
  - tensorlake
  - tensorlake-cpu-6
  - tensorlake-memory-12gb
  - tensorlake-disk-60gb
```

Use positive whole numbers without leading zeros and at least 10 GiB of disk. The `gb` suffix means GiB; don’t combine a preset size with custom resource labels.

## Capacity and job lifetime

Runner creation uses your project’s sandbox quotas. A permanent rejection, such as exceeding a resource limit, publishes a failed Tensorlake check and cancels the workflow run; inspect the check for the reason.

Each runner has a maximum lifetime of 2 hours, including startup. Set your job’s `timeout-minutes` below that limit; a higher value doesn’t extend the runner’s lifetime.
