Improve performance of controllers

This commit is contained in:
Nikola Jokic
2026-07-07 19:18:15 +02:00
parent 7086893498
commit 191fac9eaa
50 changed files with 3358 additions and 1065 deletions
@@ -71,6 +71,13 @@ func WithRemoveRunner(err error) ClientOption {
}
}
// WithRemoveRunnerFunc configures a function to handle RemoveRunner calls dynamically.
func WithRemoveRunnerFunc(fn func(context.Context, int64) error) ClientOption {
return func(c *Client) {
c.removeRunnerFunc = fn
}
}
// WithGenerateJitRunnerConfig configures the result of GenerateJitRunnerConfig
func WithGenerateJitRunnerConfig(result *scaleset.RunnerScaleSetJitRunnerConfig, err error) ClientOption {
return func(c *Client) {
@@ -121,6 +128,7 @@ type Client struct {
systemInfo scaleset.SystemInfo
createRunnerScaleSetFunc func(context.Context, *scaleset.RunnerScaleSet) (*scaleset.RunnerScaleSet, error)
updateRunnerScaleSetFunc func(context.Context, int, *scaleset.RunnerScaleSet) (*scaleset.RunnerScaleSet, error)
removeRunnerFunc func(context.Context, int64) error
getRunnerScaleSetResult struct {
*scaleset.RunnerScaleSet
@@ -204,6 +212,9 @@ func (c *Client) GetRunnerByName(ctx context.Context, runnerName string) (*scale
}
func (c *Client) RemoveRunner(ctx context.Context, runnerID int64) error {
if c.removeRunnerFunc != nil {
return c.removeRunnerFunc(ctx, runnerID)
}
return c.removeRunnerResult.err
}