Skip to content

[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 locked set to artifacts_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?

  • ExpireBuildArtifactsWorker might start failing due to database timeouts
  • Ci::PipelineSuccessUnlockArtifactsWorker might start failing due to database timeouts
  • Ci::RefDeleteUnlockArtifactsWorker might 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/gitlab project
  • gitlab-org/gitlab-com groups

Roll Out Steps

  • Enable on staging
  • Test on staging
  • Ensure that documentation has been updated
  • Coordinate a time to enable the flag with #production and #g_delivery on 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 #production channel
Edited by Matija Čupić