Skip to content

Add support for taskscaler scale throttle

Arran Walker requested to merge ajwalker/taskscaler-rate-limit into main

gitlab-org/fleeting/taskscaler!45 (merged) needs to be reviewed/merged first

What does this MR do?

  • Throttles instance scaling (default 100 instances per second, burst limit matches max_instances).
  • Provides backoff should instance fail to initialise with the instance_ready_command config option.

Why was this MR needed?

  • There was no way to throttle instance creation unless configured at the instance group level, which is not always supported.
  • More importantly, if instance_ready_command fails often, there was no backoff/throttle on scaling up and idle instances could repeatedly be created fast.

What's the best way to test this MR?

Manual check:

  • Create runner instance executor
  • Set idle count to 2
  • Use instance_ready_command = "exit 1"

Observe each instance fail to start up and backoff occurring.

What are the relevant issue numbers?

#37473 (closed)

#37497 (closed)

Edited by Arran Walker

Merge request reports