Manage Runners Logo
Manage Runners
Documentation menu

Runners

Create, edit, duplicate, pause, resume, delete and remove runners in the dashboard.

The Dashboard lists the runners of the selected organization as cards. Each card shows the runner’s state, chip, vCPUs, RAM, disk, concurrency, executor, IPv4 and IPv6 addresses (select one to copy it), location and Hetzner’s monthly price. Use the filters above the list to narrow it down by status, executor or location, or search by name.

The dashboard with an active and a paused runner

Owners and editors can change runners. Viewers see the list without actions and a View only badge. The dashboard needs an active plan; without one it opens Billing.

Create a runner

Select Create Runner, fill in the form and select Create. The quick start explains every field. Some rules:

  • Name: letters, numbers, spaces and dashes only. Other characters are removed as you type.
  • Product and location: choose the product first; the location list then shows where Hetzner offers it and at what price. Locations where it is unavailable are disabled.
  • Concurrency: at least 1. Selecting a product sets it to twice the vCPU count.
  • Tokens: the GitLab runner authentication token and a Hetzner API token with read and write access.
  • Resource monitoring: on by default when your organization’s plan is active. See Monitoring.

The runner appears as Creating, then Configuring, then Active. The dashboard refreshes the list while any runner is changing state.

Edit a runner

Select Edit on the card, change the settings and select Save changes.

  • Location cannot be changed, because that would change the runner’s IP addresses. To move a runner, create a new one in the other location.
  • Product offers only server types that are available in the runner’s location.
  • Tokens show as ********. Leave a token field empty to keep the stored token.

Changing the product, GitLab host, GitLab token, concurrency, executor, SSH keys or monitoring of an active runner deletes its server and creates a new one. Running jobs are interrupted. Changing the name, labels or Hetzner token does not. See Changes that recreate the server.

Duplicate a runner

Select Duplicate to create a copy with the same product, location, executor, concurrency, GitLab host and token, Hetzner token, SSH keys, labels and monitoring setting. The copy’s name gets a number, for example build-01 2. It starts as a new runner and creates its own server and IP addresses.

You can duplicate active and paused runners. Duplicate is disabled when Hetzner no longer offers the runner’s server type in its location.

Pause and resume

Pause deletes the runner’s server. The runner keeps its configuration and its IPv4 and IPv6 addresses, and Hetzner stops billing for the server. Jobs running at that moment are interrupted.

Resume creates a new server with the same configuration and addresses. The runner goes through Creating and Configuring again before it is Active. Because the server is new, nothing from its previous disk remains.

If Hetzner no longer offers the server type in the runner’s location, Resume is disabled, and the card warns you before you pause a runner that could not be resumed. If Hetzner cannot create the server when you resume, for example because of capacity problems, the runner stays paused and the card shows the error. Try again later, or edit the runner to use another server type.

To pause and resume on a timetable, use a schedule.

Delete a runner

Select Delete, then select it again to confirm. Manage Runners deletes the server, the runner’s IP addresses and its schedule.

If Hetzner does not confirm that the server was deleted, the runner is kept and the card shows an error, so you can try again. A server that no longer exists at Hetzner counts as deleted.

Deleting a runner does not remove it from GitLab. Delete it in GitLab when you no longer need it.

Remove an Unknown runner

A runner in the Unknown state cannot be deleted normally, because Manage Runners does not know whether its server still exists. Selecting Delete on it opens Delete Unknown Runner, which only removes the runner from the dashboard:

If you delete an unknown runner, the ip and hetzner server will not be deleted.

After you confirm, check the Hetzner Console and delete the server and its primary IPs there if they still exist. Before you remove an Unknown runner, see whether editing it can recover it.

When actions are unavailable

Action Unavailable while the runner is
Duplicate, Pause, Resume Creating, Unknown, or while a pause is in progress
Delete Creating, or while a pause is in progress
Edit Invalid Gitlab Token (use Fix instead)

Only one lifecycle action runs on a runner at a time. If you start another one, it fails with a message that the runner is locked. Wait until the first action has finished.