From b7e186f028fe9a0d27ccf3f0ba868480e078feb9 Mon Sep 17 00:00:00 2001 From: Benoit Sigoure Date: Wed, 29 Jul 2026 21:55:28 +0000 Subject: [PATCH] scaleset: allow updating disable_update on existing scale sets DisableUpdate was only settable at creation. The update path already propagates a changed DisableUpdate to GitHub via UpdateRunnerScaleSet; only the API param and the DB update mapping were missing. --- database/sql/scalesets.go | 4 ++++ params/requests.go | 1 + webapp/swagger.yaml | 3 +++ 3 files changed, 8 insertions(+) diff --git a/database/sql/scalesets.go b/database/sql/scalesets.go index 0115bc6b0..6e597c602 100644 --- a/database/sql/scalesets.go +++ b/database/sql/scalesets.go @@ -360,6 +360,10 @@ func (s *sqlDatabase) updateScaleSet(tx *gorm.DB, scaleSet ScaleSet, param param updates["name"] = param.Name } + if param.DisableUpdate != nil && *param.DisableUpdate != scaleSet.DisableUpdate { + updates["disable_update"] = *param.DisableUpdate + } + if param.GitHubRunnerGroup != nil && *param.GitHubRunnerGroup != "" && *param.GitHubRunnerGroup != scaleSet.GitHubRunnerGroup { updates["git_hub_runner_group"] = *param.GitHubRunnerGroup incrementGeneration = true diff --git a/params/requests.go b/params/requests.go index be17a7b78..202114e78 100644 --- a/params/requests.go +++ b/params/requests.go @@ -738,6 +738,7 @@ type UpdateScaleSetParams struct { RunnerPrefix Name string `json:"name,omitempty"` + DisableUpdate *bool `json:"disable_update,omitempty"` Enabled *bool `json:"enabled,omitempty"` MaxRunners *uint `json:"max_runners,omitempty"` MinIdleRunners *uint `json:"min_idle_runners,omitempty"` diff --git a/webapp/swagger.yaml b/webapp/swagger.yaml index 362abda0c..6a13ec8ce 100644 --- a/webapp/swagger.yaml +++ b/webapp/swagger.yaml @@ -2454,6 +2454,9 @@ definitions: x-go-package: github.com/cloudbase/garm/params UpdateScaleSetParams: properties: + disable_update: + type: boolean + x-go-name: DisableUpdate enable_shell: type: boolean x-go-name: EnableShell