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
| 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 before running it non-interactively.
Usage
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. For machine-readable
help, run manage-runners help runner autoscaling set --output json.