[Feature flag] Enable keeping latest artifact for ref
What
Enable the :keep_latest_artifacts_for_ref and :destroy_only_unlocked_expired_artifacts feature flags.
Owners
- Team: CI
- Most appropriate slack channel to reach out to:
#g_ci - Best individual to reach out to: @matteeyah
Expectations
What are we expecting to happen?
- All new pipelines should have
lockedset toartifacts_locked - When a pipeline succeeds it should unlock previous pipelines for the same ref
- When destroying artifacts, only artifacts whose pipelines are unlocked should be destroyed
What might happen if this goes wrong?
-
ExpireBuildArtifactsWorkermight start failing due to database timeouts -
Ci::PipelineSuccessUnlockArtifactsWorkermight start failing due to database timeouts -
Ci::RefDeleteUnlockArtifactsWorkermight start failing due to database timeouts
What can we monitor to detect problems with this?
https://dashboards.gitlab.com/d/000000278/postgresql-slow-queries?orgId=1&refresh=1m
Beta groups/projects
- Small sample project
-
gitlab-org/gitlabproject -
gitlab-org/gitlab-comgroups
Roll Out Steps
-
Enable on staging -
Test on staging -
Ensure that documentation has been updated -
Coordinate a time to enable the flag with #productionand#g_deliveryon slack. -
Announce on the issue an estimated time this will be enabled on GitLab.com -
Enable on GitLab.com by running chatops command in #production -
Cross post chatops slack command to #support_gitlab-com(more guidance when this is necessary in the dev docs) and in your team channel -
Announce on the issue that the flag has been enabled -
Remove feature flag and add changelog entry -
After the flag removal is deployed, clean up the feature flag by running chatops command in #productionchannel
Edited by Matija Čupić