(6/7) Remove stopped instances whose slots have all expired

What does this MR do?

ExpireSuspended deletes a stopped instance whose slots have all expired, without resuming it first (Instance.RemoveIfAllSlotsExpired).

Why was this MR needed?

Part 6 of 7. Resuming a stopped VM only to clean up environments nobody will use costs time and money. Deleting the instance removes every expired environment on it at once.

What's the best way to test this MR?

go test -race ./.... TestRemoveIfAllSlotsExpired, TestExpireSuspendedStoppedInstance.

What are the relevant issue numbers?

Part of the stack started in !117 (merged).

MR stack

Merge in order:

  1. (1/7) Give acquired slots an optional expiry (!117 - merged) • Ashvin Sharma
  2. (2/7) Let an instance mark a suspended slot exp... (!119 - merged) • Ashvin Sharma
  3. (3/7) Expire suspended slots past their expiry (!120 - merged) • Ashvin Sharma
  4. (4/7) Expose connect info for an expired slot's... (!121 - merged) • Ashvin Sharma
  5. (5/7) Free expired slots once their workload is... (!122 - merged) • Ashvin Sharma
  6. (6/7) Remove stopped instances whose slots have... (!123 - merged) • Ashvin Sharma (this MR)
  7. (7/7) Refuse to resume a suspended slot past it... (!118 - merged) • Ashvin Sharma
Edited by Ashvin Sharma

Merge request reports

Loading
Loading