Feature flag rollout: `ci_recreate_downstream_pipeline`
Summary
This issue is to rollout the feature on production, that is currently behind the ci_recreate_downstream_pipeline
feature flag.
Owners
- Team: grouppipeline authoring
- Most appropriate slack channel to reach out to:
#g_pipeline_authoring
- Best individual to reach out to: @lauraX (backend) or @mgandres (frontend)
Rollout Steps
Rollout on non-production environments
-
Ensure that the feature MRs have been deployed to non-production environments. -
/chatops run auto_deploy status <merge-commit-of-your-feature>
-
-
Enable the feature globally on non-production environments. -
/chatops run feature set ci_recreate_downstream_pipeline true --dev
-
/chatops run feature set ci_recreate_downstream_pipeline true --staging
-
-
Verify that the feature works as expected. Posting the QA result in this issue is preferable.
Specific rollout on production
- Ensure that the feature MRs have been deployed to both production and canary.
-
/chatops run auto_deploy status <merge-commit-of-your-feature>
-
- Depending on the type of actor you are using, pick one of these options:
- If you're using project-actor, you must enable the feature on these entries:
-
/chatops run feature set --project=gitlab-org/gitlab,gitlab-org/gitlab-foss,gitlab-com/www-gitlab-com ci_recreate_downstream_pipeline true
-
- If you're using project-actor, you must enable the feature on these entries:
-
Verify that the feature works on the specific entries. Posting the QA result in this issue is preferable. - [ ]
Preparation before global rollout
-
[-] Check if the feature flag change needs to be accompanied with a change management issue. Cross link the issue here if it does. -
Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production. If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the @sre-oncall
Slack alias. -
[-] Ensure that documentation has been updated (More info). -
Announce on the feature issue an estimated time this will be enabled on GitLab.com. -
Ensure that any breaking changes have been announced following the release post process to ensure GitLab customers are aware. -
Notify #support_gitlab-com
and your team channel (more guidance when this is necessary in the dev docs).
Global rollout on production
For visibility, all /chatops
commands that target production should be executed in the #production
slack channel and cross-posted (with the command results) to the responsible team's slack channel (#g_TEAM_NAME
).
-
Incrementally roll out the feature. -
If the feature flag in code has an actor, perform actor-based rollout. -
/chatops run feature set ci_recreate_downstream_pipeline 25 --actors
-
/chatops run feature set ci_recreate_downstream_pipeline 50 --actors
-
/chatops run feature set ci_recreate_downstream_pipeline 75 --actors
-
/chatops run feature set ci_recreate_downstream_pipeline 100 --actors
- Enable the feature globally on production environment.
-
/chatops run feature set ci_recreate_downstream_pipeline true
-
-
-
-
Announce on the feature issue that the feature has been globally enabled. -
Wait for at least one day for the verification term.
Release the feature
You can either create a follow-up issue for Feature Flag Cleanup or use the checklist below in this same issue.
-
Create a merge request to remove <feature-flag-name>
feature flag. Ask for review and merge it.-
Remove all references to the feature flag from the codebase. -
Remove the YAML definitions for the feature from the repository. -
Create a changelog entry.
-
-
Ensure that the cleanup MR has been deployed to both production and canary. If the merge request was deployed before the code cutoff, the feature can be officially announced in a release blog post. -
/chatops run auto_deploy status <merge-commit-of-cleanup-mr>
-
-
Close the feature issue to indicate the feature will be released in the current milestone. -
Clean up the feature flag from all environments by running these chatops command in #production
channel:-
/chatops run feature delete ci_recreate_downstream_pipeline --dev
-
/chatops run feature delete ci_recreate_downstream_pipeline --staging
-
/chatops run feature delete ci_recreate_downstream_pipeline
-
Rollback Steps
-
This feature can be disabled by running the following Chatops command:
/chatops run feature set ci_recreate_downstream_pipeline false
Edited by Laura Montemayor