Skip to content

Consolidate all google cloud support feature flags into one

🃏 Context

We have been working on bringing the google cloud support using 3 main work streams:

Due to the amount of engineers involved and MRs created, implementations have been using different feature flags. Still, all of these are gated behind a single saas only feature.

Some feature flags are scoped at the project level and others are scoped at the group level. This makes quite difficult to rollout the google cloud support to a specific set of projects. In Consolidate Google Cloud integration FFs in a s... (#442903 - closed), we decided to consolidate all feature flag into a single one: google_cloud_support_feature_flag (we can't use the same name as the saas only feature, see https://docs.gitlab.com/ee/development/feature_flags/#feature-flags-for-licensed-features).

We also took the decision of scope on root level groups, meaning that all the evaluations should be done against a root group. Meaning that for a project located in gitlab-org/gitlab, the new feature flag needs to be enabled for gitlab-org.

What does this MR do and why?

  • Replace the following feature flags: google_cloud_workload_identity_federation, ci_yaml_support_for_identity_provider, gcp_artifact_registry, google_cloud_integration_onboarding and google_cloud_runner_provisioning with a single one: google_cloud_support_feature_flag.
    • Given that we are quite close to the private preview delivery, that new feature flag is of type beta and EE only since we're behind a saas only feature.
  • Remove all the no longer used feature flag yml files.
  • Update all the related logic.
  • Update all the realted specs.

This seems like a pretty massive renaming/refactoring but we are quite confident as we have been implementing a pretty large set of specs for these features. Given that the "old" yaml definition files are removed on this branch, any code under spec execution that will try to use the old feature flags will 💥 very early. Thus, we can trust things when we have a 💚 pipeline.

🏎 MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

🖥 Screenshots or screen recordings

No changes on the UI.

How to set up and validate locally

Enable the feature flag in a rails console:

Feature.enable(:google_cloud_support_feature_flag)

General setup:

!142289 (merged)

Here are some examples of how to test each work stream:

Edited by David Fernandez

Merge request reports