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:
- https://gitlab.com/groups/gitlab-org/-/epics/11890+.
- CI Workstream (&12111 - closed).
- Google Artifact Registry Integration for Contai... (&12365 - closed).
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
andgoogle_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.
- Given that we are quite close to the private preview delivery, that new feature flag is of type
- 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
🏎 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:
Here are some examples of how to test each work stream: