mirror of
https://github.com/actions/actions-runner-controller.git
synced 2025-12-10 11:41:27 +00:00
This add support for two upcoming enhancements on the GitHub side of self-hosted runners, ephemeral runners, and `workflow_jow` events. You can't use these yet. **These features are not yet generally available to all GitHub users**. Please take this pull request as a preparation to make it available to actions-runner-controller users as soon as possible after GitHub released the necessary features on their end. **Ephemeral runners**: The former, ephemeral runners, is basically the reliable alternative to `--once`, which we've been using when you enabled `ephemeral: true` (default in actions-runner-controller). `--once` has been suffering from a race issue #466. `--ephemeral` fixes that. To enable ephemeral runners with `actions/runner`, you give `--ephemeral` to `config.sh`. This updated version of `actions-runner-controller` does it for you, by using `--ephemeral` instead of `--once` when you set `RUNNER_FEATURE_FLAG_EPHEMERAL=true`. Please read the section `Ephemeral Runners` in the updated version of our README for more information. Note that ephemeral runners is not released on GitHub yet. And `RUNNER_FEATURE_FLAG_EPHEMERAL=true` won't work at all until the feature gets released on GitHub. Stay tuned for an announcement from GitHub! **`workflow_job` events**: `workflow_job` is the additional webhook event that corresponds to each GitHub Actions workflow job run. It provides `actions-runner-controller` a solid foundation to improve our webhook-based autoscale. Formerly, we've been exploiting webhook events like `check_run` for autoscaling. However, as none of our supported events has included `labels`, you had to configure an HRA to only match relevant `check_run` events. It wasn't trivial. In contrast, a `workflow_job` event payload contains `labels` of runners requested. `actions-runner-controller` is able to automatically decide which HRA to scale by filtering the corresponding RunnerDeployment by `labels` included in the webhook payload. So all you need to use webhook-based autoscale will be to enable `workflow_job` on GitHub and expose actions-runner-controller's webhook server to the internet. Note that the current implementation of `workflow_job` support works in two ways, increment, and decrement. An increment happens when the webhook server receives` workflow_job` of `queued` status. A decrement happens when it receives `workflow_job` of `completed` status. The latter is used to make scaling-down faster so that you waste money less than before. You still don't suffer from flapping, as a scale-down is still subject to `scaleDownDelaySecondsAfterScaleOut `. Please read the section `Example 3: Scale on each `workflow_job` event` in the updated version of our README for more information on its usage.
28 lines
847 B
Modula-2
28 lines
847 B
Modula-2
module github.com/actions-runner-controller/actions-runner-controller
|
|
|
|
go 1.15
|
|
|
|
require (
|
|
github.com/bradleyfalzon/ghinstallation v1.1.1
|
|
github.com/davecgh/go-spew v1.1.1
|
|
github.com/go-logr/logr v0.4.0
|
|
github.com/google/go-cmp v0.5.6
|
|
github.com/google/go-github/v37 v37.0.0
|
|
github.com/gorilla/mux v1.8.0
|
|
github.com/kelseyhightower/envconfig v1.4.0
|
|
github.com/onsi/ginkgo v1.16.4
|
|
github.com/onsi/gomega v1.13.0
|
|
github.com/prometheus/client_golang v1.11.0
|
|
github.com/teambition/rrule-go v1.6.2
|
|
go.uber.org/zap v1.17.0
|
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
|
gomodules.xyz/jsonpatch/v2 v2.2.0
|
|
k8s.io/api v0.21.1
|
|
k8s.io/apimachinery v0.21.1
|
|
k8s.io/client-go v0.21.1
|
|
sigs.k8s.io/controller-runtime v0.9.0
|
|
sigs.k8s.io/yaml v1.2.0
|
|
)
|
|
|
|
replace github.com/google/go-github/v37 => github.com/mumoshu/go-github/v37 v37.0.100
|