Skip to content

Commit 32075f2

Browse files
authored
Allow for custom cooldown for steps (#221)
* Differenciating scale in/out cooldowns
1 parent 7669799 commit 32075f2

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

ecs_composex/ecs/ecs_scaling.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,12 +129,18 @@ def generate_alarm_scaling_out_policy(
129129
StepScalingPolicyConfiguration=StepScalingPolicyConfiguration(
130130
AdjustmentType="ExactCapacity",
131131
StepAdjustments=step_adjustments,
132+
Cooldown=60
133+
if not keyisset("scale_out_cooldown", scaling_def)
134+
or not (isinstance(scaling_def["scale_out_cooldown"], int))
135+
else scaling_def["scale_out_cooldown"],
132136
),
133137
)
134138
return policy
135139

136140

137-
def reset_to_zero_policy(service_name, service_template, scaling_source=None):
141+
def reset_to_zero_policy(
142+
service_name, service_template, scaling_def, scaling_source=None
143+
):
138144
"""
139145
140146
:return:
@@ -153,11 +159,15 @@ def reset_to_zero_policy(service_name, service_template, scaling_source=None):
153159
ServiceNamespace="ecs",
154160
StepScalingPolicyConfiguration=StepScalingPolicyConfiguration(
155161
AdjustmentType="ExactCapacity",
162+
Cooldown=60
163+
if not keyisset("scale_in_cooldown", scaling_def)
164+
or not (isinstance(scaling_def["scale_in_cooldown"], int))
165+
else scaling_def["scale_in_cooldown"],
156166
StepAdjustments=[
157167
StepAdjustment(
158168
MetricIntervalUpperBound=0,
159169
ScalingAdjustment=0,
160-
)
170+
),
161171
],
162172
),
163173
)

ecs_composex/sqs/sqs_ecs.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def handle_service_scaling(
126126
scaling_in_policy = reset_to_zero_policy(
127127
service_family,
128128
service_stack.stack_template,
129+
service_def["scaling"],
129130
scaling_source=resource.logical_name,
130131
)
131132
Alarm(

0 commit comments

Comments
 (0)