# manage-runners runner autoscaling set

> Create or change a runner's scaling policy, which adds paid Hetzner burst runners while the runner is busy; unchanged settings and omitted tokens are kept

Source: https://managerunners.com/docs/cli/reference/runner-autoscaling-set/

| | |
| --- | --- |
| Required scopes | `runners:read`, `runners:write` |
| Required flags | none |
| Changes state | yes |
| Destructive | no |
| Paid resource effect | `create` |
| Confirmation | `paid_resource` |
| Non-interactive use | supported |

> This command may create paid Hetzner resources. Read [confirmations](https://managerunners.com/docs/cli/agents/#confirmations) before running it non-interactively.

## Usage

```text
Create or change a runner's scaling policy, which adds paid Hetzner burst runners while the runner is busy; unchanged settings and omitted tokens are kept

Usage:
  manage-runners runner autoscaling set [flags]

Flags:
      --cache string               S3 cache id or name for burst runners (external anchors); a name needs runners:read
      --concurrency int            burst runner concurrency, 1 to 100 (external anchors)
      --enabled                    whether the policy scales; a new policy is enabled unless --enabled=false; an existing one keeps its state (default true)
      --executor string            burst runner executor: docker, dind or shell (external anchors)
      --gitlab-host string         GitLab host the burst runners register with (external anchors)
      --hetzner-token-env string   environment variable containing the Hetzner token for burst runners (external anchors); omit it to keep the stored token
      --id string                  anchor id: a runner or an external runner
      --label stringArray          burst runner label (external anchors); repeat for several; the given labels replace all, and --label '' removes them
      --location string            burst runner Hetzner location (external anchors)
      --max int                    maximum burst runners, 1 to 20; required for a new policy
      --name string                exact runner or external runner name
      --no-cache                   burst runners use no cache (external anchors)
      --no-send-to                 burst runners send to no Metrics connection (external anchors)
      --preset string              scale on free job slots like the dashboard's presets: eager (add when at most 1 job slot is free for 2 min; for anchors with 2 or more job slots), balanced (none free for 3 min) or conservative (none free for 5 min); replaces the rules
      --product-id string          burst runner product (external anchors)
      --profile string             configuration profile
      --rule stringArray           custom rule, one per metric, up to 3; replaces the rules. free:K:MINUTES adds burst runners when at most K (0-20) job slots are free for MINUTES (2-60) and removes one when more than K would stay free without it or when the group ran no job for the scale-in window; cpu:OUT:MINUTES:IN or memory:OUT:MINUTES:IN adds them when usage stays at or above OUT% (1-100) for MINUTES and removes them when it would stay below IN% (lower than OUT); for example free:0:3 or cpu:80:5:30
      --runner-token-env string    environment variable containing the anchor's GitLab runner authentication token (external anchors); omit it to keep the stored token
      --scale-in-window int        minutes the load must stay low before a burst runner is removed, 1 to 120 (new policy: 10)
      --send-to string             Metrics connection id or name burst runners send to (external anchors); a name needs runners:read
      --ssh-key stringArray        Hetzner SSH key id or name for burst runners (external anchors); a name is looked up with --hetzner-token-env, which needs providers:ssh-keys:read, or else with the stored token; repeat for several; the given keys replace all, and --ssh-key '' removes them
      --stabilization int          minutes to wait after a burst runner became ready before adding more, 0 to 60 (new policy: 3)
      --step int                   burst runners added per step, 1 to 5 (new policy: 1)
      --yes                        confirm that the policy may create paid burst runners
```

Every command also accepts the [global flags](https://managerunners.com/docs/cli/reference/#global-flags). For machine-readable help, run `manage-runners help runner autoscaling set --output json`.
