Configuration
The runner manager can be configured as a GitHub Application (recommended for production) but also with a GitHub Personal Access Token (recommended for development).
The configuration of the runner will be done through a YAML file and a combination of environment variables for secrets.
Global configuration
The global configuration will contain the following information:
- A name for the runner manager. (default: runner-manager) It will be used as a metadata or prefix which will allow the runner to identify the owner of each resources, avoiding conflicts with other runner managers or users.
- The default GitHub organization in which the runner and groups will be created. (Required)
- The GitHub Authentication parameters. (Required)
- For GitHub Application: The GitHub Application ID, Installation ID and Private Key. (Required)
- For GitHub Personal Access Token: The GitHub Personal Access Token. (Required)
- The Redis connection parameters. (Required)
- The backends configuration. (Required)
- The webhook secret. (Required)
- The runner groups. (Required)
- The health check interval. (Default: 10 minutes)
- The runner's time to start. (Default: 10 minutes)
- The runner's time to live. (Default: 12 hours)
Runner groups
A list of runner groups will be configured into the runner manager settings file. The following information will be configured for each runner group:
- Name of the group. (Required)
- Name of the GitHub Organization in which the runner and group will be created. (optional)
- Name of the GitHub Repository in which the runner and group will be created. (Optional)
- Repository access:
- A list of selected repositories. (Default: All repositories)
- Allow public repositories. (Default: True)
- Workflow access: a comma separated list of the workflows that can access the runner group. For example:
- The maximum number of runners that can run simultaneously. (Default: 20)
- The minimum number of runners that must be available. (Default: 0)
- The runner labels that will be attached to the runners of the group. (Required)
- The runner backend that will be used to host the runners of the group. (Required)
- The runner's instance specifications (CPU, RAM, disk, etc). (Required)