runner controls.md

Runner Controls

Runner Controls are settings for specific, situational needs: job scheduling, security, resource limits, networking, and container access.

Namespace lets you configure these as additional feature settings beyond your base runner configuration. You can pass these settings to a runner, for example container.privileged, github.run-id, or tailscale.spec. How you pass them depends on whether you use runner labels or a runner profile.

With runner profiles

The namespace-features: label cannot be used with profiles. Instead, append one or more ;key=value pairs directly to the profile name:

runs-on: namespace-profile-my-profile;container.privileged=true;container.host-pid-namespace=true

With runner labels

Pass the settings as a separate namespace-features: label (multiple values are separated by ;), and append the -with-features suffix to your machine label:

runs-on:
  - nscloud-ubuntu-22.04-amd64-4x8-with-features
  - namespace-features:container.privileged=true;container.host-pid-namespace=true

The -with-features suffix matters because GitHub assigns a job to any runner whose labels are a superset of the job's labels. Keeping the suffix on the machine label prevents jobs that don't request these features from being scheduled onto a feature-enabled runner.

Check each page below to see how to enable Runner Controls.

Relevant Links

Runner environment

Systemd

Namespace Runner images by default do NOT use Systemd. For some users this might require small changes to their workflows, e.g. replacing sudo systemctl start ... with sudo service start ....

If your workflows rely on systemd, an image using systemd is available upon request.

macOS bleeding-edge images

Namespace team continuously makes changes to macOS runner images to keep the software up-to-date and add new Xcode versions as soon as Apple releases them. More info on image updates.

To avoid regressions upcoming images go through multiple release stages before production release. This means that new Xcode versions become available to most customers with a short delay. However, it is possible to take advantage of new Xcode versions early. You can enroll your runners into using bleeding-edge macOS images.

Note: Images in the bleeding-edge channel have not passed the full set of validation checks and may contain regressions. We are happy to hear feedback from early users of these images via Namespace support channels. But enrolling should be done without expectation of perfect stability.

With runner profiles

Visit the runner profile editor and select the Use bleeding-edge images checkbox.

With runner labels

Add namespace-features:macos.channel=preview to the list of runner labels:

runs-on:
  - nscloud-macos-sequoia-arm64-6x14-with-features
  - namespace-features:macos.channel=preview

Hands-on support

Need help configuring your runners? Our team is here to assist: