[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 timeoutsCi::PipelineSuccessUnlockArtifactsWorkermight start failing due to database timeoutsCi::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/gitlabprojectgitlab-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ć