Skip to content

Update deployments_raise_updated_at_inefficient_error FF

What does this MR do and why?

We have introduced a breaking change in the Deployments API that's behind a Feature Flag. This Feature Flag is already enabled in GitLab-managed instances including gprd: #409584 (comment 1381178926).

This MR enables the breaking change by default on all GitLab instances and links to the correct FF rollout issue.

This also introduces an override Feature Flag to allow for the change to be "reverted" for certain users/projects that run into a high volume of errors if the original Feature Flag is enabled.

Issue: #328500 (closed)

Screenshots or screen recordings

deployments_raise_updated_at_inefficient_error is disabled - NO ERROR

ff_disabled

deployments_raise_updated_at_inefficient_error is enabled without the override - HAS ERROR

ff_enabled_without_override

deployments_raise_updated_at_inefficient_error is enabled with the override - NO ERROR

ff_enabled_with_override

How to set up and validate locally

  1. Pick any project that has a Deployment, or create a new test project and run a deploy pipeline (guide: https://docs.gitlab.com/ee/ci/environments/#environments-and-deployments)

  2. Create an access token to use for API requests (guide: https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-tokens)

  3. Disable/enable the deployments_raise_updated_at_inefficient_error and deployments_raise_updated_at_inefficient_error_override flags accordingly.

    Feature.enable(:deployments_raise_updated_at_inefficient_error)
    Feature.enable(:deployments_raise_updated_at_inefficient_error_override, project) # to enable to override for a specific project
    Feature.disable(:deployments_raise_updated_at_inefficient_error_override, project) # to disable the override for a specific project
  4. Run the following request from the terminal:

    curl -ki -X GET \
    --header "Authorization: Bearer $ACCESS_TOKEN" \
    "https://gdk.test:3443/api/v4/projects/21/deployments?updated_after=2019-03-15T08:00:00Z"

    The expected results should be

    • deployments_raise_updated_at_inefficient_error is disabled - no error
    • deployments_raise_updated_at_inefficient_error is enabled, override is disabled - has error
    • deployments_raise_updated_at_inefficient_error is enabled, override is enabled - no error

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Pam Artiaga

Merge request reports