Update the scaling policies when deregistering a job (#25911)

* func: Update the scaling policies when deregistering a job

* func: Add tests for updating the policy

* docs: add changelog

* func: set back the old order

* style: rearrange for clarity and to reuse the watchset

* func: set the policies to teh last submitted when starting a job

* func: expand tests  of teh start job command to include job submission

* func: Expand the tests to verify the correct state of the scaling policy after job start

* Update command/job_start.go

Co-authored-by: Tim Gross <tgross@hashicorp.com>

* Update nomad/fsm_test.go

Co-authored-by: Tim Gross <tgross@hashicorp.com>

* func: add warning when there is no previous job submission

---------

Co-authored-by: Tim Gross <tgross@hashicorp.com>
This commit is contained in:
Juana De La Cuesta
2025-06-02 16:11:38 +02:00
committed by GitHub
parent ae3eaf80d1
commit bdfd573fc4
8 changed files with 195 additions and 20 deletions

View File

@@ -1420,6 +1420,15 @@ func (j *Job) AddSpread(s *Spread) *Job {
return j
}
func (j *Job) GetScalingPoliciesPerTaskGroup() map[string]*ScalingPolicy {
ret := map[string]*ScalingPolicy{}
for _, tg := range j.TaskGroups {
ret[*tg.Name] = tg.Scaling
}
return ret
}
type WriteRequest struct {
// The target region for this write
Region string

View File

@@ -707,6 +707,12 @@ func (g *TaskGroup) AddSpread(s *Spread) *TaskGroup {
return g
}
// AddSpread is used to add a new spread preference to a task group.
func (g *TaskGroup) ScalingPolicy(sp *ScalingPolicy) *TaskGroup {
g.Scaling = sp
return g
}
// LogConfig provides configuration for log rotation
type LogConfig struct {
MaxFiles *int `mapstructure:"max_files" hcl:"max_files,optional"`