gitlab-runner: TTL-based cleanup of stale suspended environments (Fleeting-based executors)
MRs:
Implement a background loop in the runner that tears down suspended environments whose TTL has expired. This is the safety net for crashed workflows, abandoned sessions, and orchestrator bugs.
- Track suspension timestamp per acquisition in the runner's persisted state.
- Periodically check for expired environments (configurable TTL, default 1 week).
- On expiry: call
scaler.Terminateto release the acquisition and tear down the instance. - Must survive runner restarts (suspension state is already persisted to disk).
- Log each expiry for operator visibility.
Edited by Ashvin Sharma