-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Port ScheduledOverrides to AutoscalingRunnerSet #3564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Port ScheduledOverrides to AutoscalingRunnerSet #3564
Conversation
e803068
to
7f1d90c
Compare
👏 |
bump |
62269e4
to
fdf0aee
Compare
Unlike the legacy So a small question for the maintainers - |
fdf0aee
to
a8b1b0e
Compare
Hi @nikola-jokic |
Bump on this one, really needed feature |
Hey team, do we have an ETA on this? P+ customer Itaú is asking for a status. |
Hi Team, any update on this? We met with the customer today. |
It would be nice to have a position on this. If it is going to be merged or not. This way we could define what to do to tackle this issue in our clusters. |
👋🏽 Any chance we get any sort of feedback on this PR? This is a very important feature for cost management |
@asafhm Thoughts on also supporting apiVersion: actions.github.com/v1alpha1
kind: AutoscalingRunnerSet
metadata:
annotations: # abbreviated
labels: # abbreviated
name: example-gha-runner-scale-set
spec:
githubConfigSecret: "<some_value>"
githubConfigUrl: "<some_value>"
maxRunners: 2
minRunners: 1
cronOverrides:
- timezone: America/Chicago
start: 0 6 * * * # At 6:00 AM
end: 0 20 * * * # At 8:00 PM
minRunners: 0 My main usecase is to have 0 minRunners over the weekend for example. |
@pragmaticivan You could achieve this with
The advantage here is that you can be specific about the future starting point of this rule up to the date itself, which is impossible using Cron, since it will start from the next match of its pattern. I suppose there may be use cases that require specificity for some. |
Honestly, it appears that this repository in its entirety is not actively maintained anymore, and for the past two months all commits came from bots, regardless of the large amount of PRs waiting to be looked at. |
I know that many people take their holidays in September and October, so I guess there's no way around it, but they don't come back very quickly. 😢 |
Sadly this trend began before September, and even before this PR was created :/ |
@Link- Trying my luck here since no other maintainer appears active recently... Could I kindly solicit a review? There's enough demand from the community for this PR |
Bump |
I've given up hope this or any other long-living PR by the community will eventually get merged. |
@nikola-jokic Would it be possible to get a review on this please? |
Hey team! Any reason why this was not merged in the release from today? It would be nice to have at least a position on this, an approval or rejection. |
Fixes #3313 and #2986 (closed with no resolution)
Porting the great work by @mumoshu of the
ScheduledOverrides
capability ofHorizontalRunnerAutoscaler
toAutoscalingRunnerSet
How to use it
It's meant to be used in an almost identical way, with one exception -
minReplicas
was renamed tominRunners
to conform with the current naming choice.Examples:
AutoscalingRunnerSet
CR directly:gha-runner-scale-set
helm chart, by settingscheduledOverrides
in the values:Notable changes
Changes to the AutoscalingRunnerSet Status
Like the previous implementation of scheduled overrides, this PR introduces the
ScheduledOverridesSummary
field in theAutoscalingRunnerSet
Status.In order to share the desired minimum runners between the
AutoscalingRunnerSet
andAutoscalingListener
resources post scheduled overrides evaluation, an additional field is introduced to theAutoscalingRunnerSet
Status -DesiredMinRunners
.Whenever the listener's minRunners value is different than
DesiredMinRunners
, the listener is deleted so it can be recreated.Changes to requeuing of requests
In order to reevaluate the scheduled overrides, the final
return ctrl.Result{}, nil
in the autoscalingrunnerset reconciliation function was changed to requeue the request after 1 minute.