Auto stop environments after a certain period
Review apps are short lived by definition. Unfortunately, stale branches are ubiquitous (gitlab-ce has ~1,600). Keeping all as review apps would is a burden.
Just like artifacts can expire, environments should be able to be configured to stop after a certain time, as defined in
job:environment:auto_stop_in. And, just like artifacts can be "promoted" as non-expiring in the UI, so should be environments.
auto_stop_in: value for environment is renewed per deployment, this means if an environment is about to be stopped and got a new deployment, the
auto_stop_in: is extended to the new value. Thus, active environments will never be expired and only inactive/stale environments will be stopped automatically.
- Add a column for Auto stops in
- If an environment will auto stop, show button to prevent it from auto-stopping
No deploymentswith deployments column
- Do not display Auto stop in or button if the environment is not set to auto stop
- If an environment will auto stop, Add Auto stops in xx weeks next to the title
- If an environment will auto stop, show button to prevent it
Links / references
!18115 (closed) is complete.
MRs to be merged into master
- Persist and control auto stop date. => !19931 (merged)
- Prepare background job to periodically cleanup expired environments. => !21476 (merged)
- Update GitLab omnibus's cron setting => omnibus-gitlab!3927 (merged)
- Remove feature flag and update the documentation. => !24850 (merged)
- Create MR for persisting and controlling auto-stop branched off BE MR. => !20372 (merged)
This feature is built behind
auto_stop_environments feature flag and disabled by default until we make sure it's deemed stable.