@@ -67,6 +67,7 @@ type Ocean struct {
67
67
SpreadNodesBy * string
68
68
AvailabilityVsCost * string
69
69
ResourceTagSpecificationVolumes * bool
70
+ AutoScalerAggressiveScaleDown * bool
70
71
}
71
72
72
73
var (
@@ -324,9 +325,14 @@ func (o *Ocean) Find(c *fi.CloudupContext) (*Ocean, error) {
324
325
325
326
// Scale down.
326
327
if down := ocean .AutoScaler .Down ; down != nil {
327
- actual .AutoScalerOpts .Down = & AutoScalerDownOpts {
328
- MaxPercentage : down .MaxScaleDownPercentage ,
329
- EvaluationPeriods : down .EvaluationPeriods ,
328
+ if down .MaxScaleDownPercentage != nil || down .EvaluationPeriods != nil {
329
+ actual .AutoScalerOpts .Down = & AutoScalerDownOpts {
330
+ MaxPercentage : down .MaxScaleDownPercentage ,
331
+ EvaluationPeriods : down .EvaluationPeriods ,
332
+ }
333
+ }
334
+ if down .AggressiveScaleDown != nil {
335
+ actual .AutoScalerAggressiveScaleDown = down .AggressiveScaleDown .IsEnabled
330
336
}
331
337
}
332
338
@@ -585,6 +591,16 @@ func (_ *Ocean) create(cloud awsup.AWSCloud, a, e, changes *Ocean) error {
585
591
MaxMemoryGiB : limits .MaxMemory ,
586
592
}
587
593
}
594
+ // create AutoScalerAggressiveScaleDown
595
+ {
596
+ if e .AutoScalerAggressiveScaleDown != nil {
597
+ aggressiveScaleDown := new (aws.AggressiveScaleDown )
598
+ if down := autoScaler .Down ; down == nil {
599
+ autoScaler .Down = new (aws.AutoScalerDown )
600
+ }
601
+ autoScaler .Down .SetAggressiveScaleDown (aggressiveScaleDown .SetIsEnabled (fi .PtrTo (* e .AutoScalerAggressiveScaleDown )))
602
+ }
603
+ }
588
604
589
605
ocean .SetAutoScaler (autoScaler )
590
606
}
@@ -1084,6 +1100,15 @@ func (_ *Ocean) update(cloud awsup.AWSCloud, a, e, changes *Ocean) error {
1084
1100
} else if a .AutoScalerOpts .ResourceLimits != nil {
1085
1101
autoScaler .SetResourceLimits (nil )
1086
1102
}
1103
+ // AutoScaler aggressive scale down
1104
+ if changes .AutoScalerAggressiveScaleDown != nil {
1105
+ aggressiveScaleDown := new (aws.AggressiveScaleDown )
1106
+ if down := autoScaler .Down ; down == nil {
1107
+ autoScaler .Down = new (aws.AutoScalerDown )
1108
+ }
1109
+ autoScaler .Down .SetAggressiveScaleDown (aggressiveScaleDown .SetIsEnabled (fi .PtrTo (* changes .AutoScalerAggressiveScaleDown )))
1110
+ changes .AutoScalerAggressiveScaleDown = nil
1111
+ }
1087
1112
1088
1113
ocean .SetAutoScaler (autoScaler )
1089
1114
changed = true
0 commit comments