Remove ci_read_pipeline_variables_from_artifact feature flag

What does this MR do and why?

Background

Currently pipeline variables take up a lot of space in the database table p_ci_pipeline_variables. Our goal in the epic gitlab-org#19989 is to offload this data to object storage by leveraging our existing pipeline artifacts framework to store pipeline variables as encrypted JSON artifacts.

In !222547 (merged), we introduced the ci_read_pipeline_variables_from_artifact feature flag to read pipeline variables from object storage (pipeline artifacts) when available, falling back to the database for pipelines where the artifact doesn't exist.

  • When reading from a pipeline artifact, the variable objects are of class Ci::PipelineVariableItem.
  • When reading from the variables association, the variable objects are of class Ci::PipelineVariable.

We have rolled it out gradually and reached 100% of production.

This MR

This MR removes the ci_read_pipeline_variables_from_artifact feature flag now that the reads behaviour has been validated in production and deemed stable.

The following changes are included:

  • Feature.disabled?(:ci_read_pipeline_variables_from_artifact, project) guard is removed from Ci::Pipeline#variables : reading from artifact is now unconditional
  • Updated the query threshold comment in create_pipeline_service_environment_shared_examples.rb : the +1 query to ci_pipeline_artifacts from Ci::Pipeline#variables reading pipeline variables from object storage is now permanent behaviour (previously marked as TEMP to be removed with the FF)
  • Updated specs

References

Related to #585224 (closed)

Edited by Madhusudan Vaishnao

Merge request reports

Loading