Nikola Jokic and Copilot App
32ed938405
Fix syntax error and normalize ephemeralrunners resource casing
...
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
2026-09-12 23:37:31 +02:00
Nikola Jokic and Copilot App
0c17a55075
Guard Running phase transition with optimistic locking
...
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
2026-09-12 23:37:31 +02:00
Nikola Jokic and Copilot Autofix powered by AI
839272075a
Change resource name to lowercase 'ephemeralrunners'
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-09-12 23:37:31 +02:00
Nikola Jokic and Copilot App
03a2cdbdec
Let the listener own the EphemeralRunner Running phase transition
...
The controller derived Status.Phase directly from the pod phase, so a runner
became Running as soon as its pod started, whether or not it had picked up a
job. That made Running mean "the pod is up" instead of "the runner is busy",
and it left the EphemeralRunnerSet scale-down path unable to tell an idle
runner from one that is executing a job.
The listener already knows when a job is assigned to a specific runner, so
move the transition there. HandleJobStarted now reads the runner first and
only promotes it to Running when it is not terminal (Failed, Succeeded or
Outdated) and not being deleted, then patches the phase alongside the job
fields it already writes. The listener role gains "get" on ephemeralrunners
for that read.
On the controller side updateRunStatusFromPod keeps publishing the initial
Pending phase while the pod is starting, and no longer promotes to Running.
Runners waiting for work now stay Pending, so scale-down picks them before
runners that are actually executing a job.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
2026-09-12 23:37:31 +02:00
Nikola Jokic
7c68e1d318
Set listener qps and burst ( #4558 )
2026-09-08 15:49:58 +02:00
Nikola Jokic
f0d0b1d439
Add guards on timings so we don't publish incorrect metrics ( #4621 )
2026-09-08 14:32:24 +02:00
Nikola Jokic
e7b6482761
Fix job execution duration when runner assign time is not set ( #4472 )
2026-05-11 15:57:43 +02:00
Nikola Jokic and Copilot Autofix powered by AI
9bc1c9e53e
Shutdown the scaleset when runner is deprecated ( #4404 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-03-19 13:30:20 +01:00
Nikola Jokic
dc7c858e68
Remove actions client ( #4405 )
2026-03-16 14:39:55 +01:00
Nikola Jokic
f99c6eda0b
Moving to scaleset client for the controller ( #4390 )
2026-03-13 14:36:41 +01:00
Nikola Jokic
8b7fd9ffef
Switch client to scaleset library for the listener and update mocks ( #4383 )
2026-02-24 14:17:31 +01:00
Nikola Jokic
c6e4c94a6a
Fix tests and generate mocks ( #4384 )
2026-02-24 13:36:01 +01:00
Yusuke Kuoka
f731873df9
Add workflow name and target labels ( #4240 )
2025-09-30 16:01:51 +02:00
Nikola Jokic
088e2a3a90
Remove ephemeral runner when exit code != 0 and is patched with the job ( #4239 )
2025-09-17 21:40:37 +02:00
calx
e6e621a50a
Remove duplicate float64 call ( #4139 )
2025-06-24 11:26:20 +02:00
Nikola Jokic
e46c929241
Azure Key Vault integration to resolve secrets ( #4090 )
2025-06-11 15:53:33 +02:00
Tingluo Huang and Nikola Jokic
c359d14e69
Avoid nil point when config.Metrics is nil and expose all metrics if none are configured ( #4101 )
...
Co-authored-by: Nikola Jokic <jokicnikola07@gmail.com >
2025-06-11 15:51:26 +02:00
Ryo Sakamoto
97697e80b4
Add job_workflow_ref label to listener metrics ( #4054 )
...
Signed-off-by: rskmm0chang <rskmm0chang@hatena.ne.jp >
2025-06-05 08:33:30 +02:00
Nikola Jokic
1dbb88cb9e
Allow use of client id as an app id ( #4057 )
2025-05-16 16:21:06 +02:00
Ryosei Karaki
f832b0b254
upgrade(golangci-lint): v2.1.2 ( #4023 )
...
Signed-off-by: karamaru-alpha <mrnk3078@gmail.com >
2025-04-17 16:14:31 +02:00
David Maxwell
ea27448da5
Fix busy runners metric ( #4016 )
2025-04-04 17:17:09 +02:00
Nikola Jokic
5a960b5ebb
Create configurable metrics ( #3975 )
2025-03-24 15:27:42 +01:00
Nikola Jokic
fb9b96bf75
Update all dependencies, conforming to the new controller-runtime API ( #3949 )
2025-03-11 15:52:52 +01:00
Nikola Jokic
7a5996f467
Remove old githubrunnerscalesetlistener, remove warning and fix config bug ( #3937 )
2025-03-07 11:58:16 +01:00
ddc872d3ee
metrics cardinality for ghalistener ( #3671 )
...
Co-authored-by: Bassem Dghaidi <568794+Link-@users.noreply.github.com >
Co-authored-by: Nikola Jokic <jokicnikola07@gmail.com >
2025-02-26 15:34:17 +01:00
Han-Wen Nienhuys and Han-Wen Nienhuys
f673a085b0
cmd/ghalistener/config: export Validate ( #3870 )
...
Co-authored-by: Han-Wen Nienhuys <hanwenn@gmail.com >
2025-01-17 12:25:33 +01:00
Nikola Jokic
3bda9bb240
Refresh session if token expires during delete message ( #3529 )
2024-05-17 15:16:38 +02:00
Nikola Jokic
ab92e4edc3
Re-use the last desired patch on empty batch ( #3453 )
2024-05-17 15:12:16 +02:00
Nikola Jokic
f965dfef73
Shutdown metrics server when listener exits ( #3445 )
2024-04-16 21:29:03 +02:00
Nikola Jokic
4ee49fee14
Propagate max capacity information to the actions back-end ( #3431 )
2024-04-16 14:00:40 +02:00
Nikola Jokic
963ae48a3f
Include self correction on empty batch and avoid removing pending runners when cluster is busy ( #3426 )
2024-04-16 12:55:25 +02:00
Nikola Jokic and Francesco Renzi
7a643a5107
Fix overscaling when the controller is much faster then the listener ( #3371 )
...
Co-authored-by: Francesco Renzi <rentziass@gmail.com >
2024-03-20 15:36:12 +01:00
Nikola Jokic and Samuel Rats
814947c60e
Update metrics to include repository on job-based label ( #3310 )
...
Co-authored-by: Samuel Rats <samuel.rats@teads.com >
2024-03-18 12:45:52 +01:00
Nikola Jokic
7da2d7f96a
Fix acquire jobs after session refresh ghalistener ( #3307 )
2024-02-27 17:37:42 +01:00
Nikola Jokic
f7b6ad901d
Add listener graceful termination period and background context after the message is received ( #3187 )
2024-01-25 15:45:07 +01:00
Nikola Jokic
728f05c844
Delete message session when listener.Listen returns ( #3240 )
2024-01-25 15:12:19 +01:00
Nikola Jokic
c00465973e
Publish metrics in the new ghalistener ( #3193 )
2024-01-25 14:46:42 +01:00
Nikola Jokic
a029b705cd
Fix proxy issue in new listener client ( #3181 )
2023-12-21 15:35:36 +01:00
Nikola Jokic
f7eb88ce9c
Change minRunners behavior and fix the new listener min runners ( #3139 )
2023-12-13 19:39:21 +01:00
Nikola Jokic
0fd8eac305
Update user agent for new ghalistener ( #3138 )
2023-12-08 14:01:22 +01:00
Nikola Jokic
b78cadd901
Refactoring listener app with configurable fallback ( #3096 )
2023-12-08 13:41:06 +01:00
Nikola Jokic
202a97ab12
Modify user agent format with subsystem and is proxy configured information ( #3116 )
2023-12-08 13:16:29 +01:00
Nikola Jokic
65fd04540c
Bump go version and all direct dependencies to newest for k8s compatibility ( #2947 )
2023-11-14 16:19:43 +01:00
Nikola Jokic
16815230bb
Metrics: set max and min runners during startup time ( #3032 )
2023-11-07 14:20:10 +01:00
Nikola Jokic
b511953df7
Trim down metrics cardinality ( #3003 )
2023-10-20 12:20:30 +02:00
Nikola Jokic and Bassem Dghaidi
2117fd1892
Configure listener pod with the secret instead of env ( #2965 )
...
Co-authored-by: Bassem Dghaidi <568794+Link-@users.noreply.github.com >
2023-10-19 12:29:32 +02:00
Nikola Jokic
07bff8aa1e
Extend the user agent and fix the build version for the listener app ( #2892 )
2023-09-14 20:10:49 +02:00
a0a3916c80
Provide scale-set listener metrics ( #2559 )
...
Co-authored-by: Tingluo Huang <tingluohuang@github.com >
Co-authored-by: Bassem Dghaidi <568794+Link-@users.noreply.github.com >
2023-08-21 13:50:07 +02:00
Lukas Hauser
78271000c0
Logs - Add missing formatting ( #2780 )
2023-08-09 17:54:24 +09:00
Nikola Jokic
336e11a4e9
Fix scaling back to 0 after min runners were set to number > 0 ( #2742 )
2023-08-09 10:32:08 +02:00