Fix scaling back to 0 after min runners were set to number > 0 (#2742)

This commit is contained in:
Nikola Jokic
2023-08-09 10:32:08 +02:00
committed by GitHub
parent dcb64f0b9e
commit 336e11a4e9
4 changed files with 62 additions and 15 deletions

View File

@@ -39,7 +39,7 @@ func NewService(
rsClient: rsClient,
kubeManager: manager,
settings: settings,
currentRunnerCount: 0,
currentRunnerCount: -1, // force patch on startup
logger: logr.FromContextOrDiscard(ctx),
}
@@ -51,14 +51,6 @@ func NewService(
}
func (s *Service) Start() error {
if s.settings.MinRunners > 0 {
s.logger.Info("scale to match minimal runners.")
err := s.scaleForAssignedJobCount(0)
if err != nil {
return fmt.Errorf("could not scale to match minimal runners. %w", err)
}
}
for {
s.logger.Info("waiting for message...")
select {
@@ -94,6 +86,10 @@ func (s *Service) processMessage(message *actions.RunnerScaleSetMessage) error {
return nil
}
if message.MessageId == 0 && message.Body == "" { // initial message with statistics only
return s.scaleForAssignedJobCount(message.Statistics.TotalAssignedJobs)
}
var batchedMessages []json.RawMessage
if err := json.NewDecoder(strings.NewReader(message.Body)).Decode(&batchedMessages); err != nil {
return fmt.Errorf("could not decode job messages. %w", err)