Resource: yet_cloud_runner
GitHub Actions runners kept on a Mac — a native runtime, whose agent runs as its own yetd account — for the builds only a Mac can make. Cloud asks GitHub for their registration tokens, a new one before each expires; the Mac never holds the company's token.
Note: Cloud asks GitHub with the runner's own github_token, or, without one, with the company's GitHub connection — yet_settings_connection_github. Either must be able to manage the repository's or the organization's runners: a fine-grained token with Administration: read and write on the repository, or Self-hosted runners on the organization.
Note: Only Cloud admins define runners: a job runs on the company's machine, so they are for the company's own repositories.
Example Usage
resource "yet_cloud_runtime" "mac" {
name = "mac-mini"
stack = "local:native"
server_id = yet_cloud_server.mac.id
}
# The organization's macOS runners, registered with the company's GitHub connection.
resource "yet_cloud_runner" "ios" {
runtime_id = yet_cloud_runtime.mac.id
name = "ios"
url = "https://github.com/acme"
labels = ["macos", "xcode-16"]
replicas = 2
depends_on = [yet_settings_connection_github.acme]
}Schema
Required
name(String) Its name on the runtime: lowercase letters, digits and dashes, up to 32.runtime_id(String) The native runtime (local:native, on a Mac) they run on.url(String) What it runs for, on GitHub: an organization,https://github.com/acme, or a repository,https://github.com/acme/ios.
Optional
enabled(Boolean) Whether it runs.trueunless set.github_token(String, Sensitive) A GitHub token of its own; the company's GitHub connection is used without one. Sealed in Cloud, never shown again — taken away from the config, the one given stays.labels(Set of String) Its labels, for workflows'runs-on: letters, digits, dots, dashes and underscores.replicas(Number) How many copies run, each taking a job: 1 to 20,1unless set.
Read-Only
has_token(Boolean) Whether it has a GitHub token of its own.id(String) The ID of this resource.problem(String) What GitHub said, when it would not register it.
Import
In Terraform v1.5.0 and later, with an import block:
import {
to = yet_cloud_runner.ios
id = "01J9Z8K3V7Q2M4N6P8R0S2T4V6/01J9Z8M1A2B3C4D5E6F7G8H9J0"
}With terraform import:
# <runtime_id>/<runner_id>
terraform import yet_cloud_runner.ios 01J9Z8K3V7Q2M4N6P8R0S2T4V6/01J9Z8M1A2B3C4D5E6F7G8H9J0