[CI Minutes] [Feature flag] Rollout 'new_route_ci_minutes_purchase'
In order to rollout feature flag :new_route_ci_minutes_purchase
and release the feature CI Minutes, we proceed as follow:
roll-out :new_route_ci_minutes_purchase
|
|
release the feature and remove :new_route_ci_minutes_purchase
|
#337064 (closed) |
Summary
This issue is to rollout the feature on production,
that is currently behind the <new_route_ci_minutes_purchase>
feature flag.
The feature is updating the CI Minutes purchase from an external one (on Customers Portal) to the one embedded in GitLab. More details in the Epic.
Owners
- Team: ~"group::purchase"
- Most appropriate slack channel to reach out to:
#g_purchase
- Best individual to reach out to: @dzubova or @rhardarson
- PM: @tgolubeva
Stakeholders
The Rollout Plan
-
Partial Rollout on GitLab.com with testing groups -
Rollout on GitLab.com for a certain period (2 milestones) -
Percentage Rollout on GitLab.com -
Rollout Feature for everyone as soon as it's ready
- https://sentry.gitlab.net/gitlab/customersgitlabcom/
- https://dashboards.gitlab.net/d/stage-groups-purchase/stage-groups-group-dashboard-fulfillment-purchase?orgId=1
Testing Groups/Projects/Users
-
gitlab-org
/tatyanas-test-gitlab-group
group (@tgolubeva) -
gitlab-org
/test-group-894
group (@esybrant) -
gitlab-org
/atlas-italia
group (@agulina) -
gitlab-org
/brave-flamingo
group (@dzubova)
Expectations
What are we expecting to happen?
When a group is eligible for purchasing additional CI Minutes, the button on the Usage Quotas are of the group will direct the customer to the GitLab-embedded CI Minutes flow.
What might happen if this goes wrong?
If something goes wrong, the customers won't be able to purchase additional CI Minutes. Disabling the FF will be sufficient to solve any incident.
What can we monitor to detect problems with this?
- https://sentry.gitlab.net/gitlab/customersgitlabcom/
- https://dashboards.gitlab.net/d/stage-groups-purchase/stage-groups-group-dashboard-fulfillment-purchase?orgId=1
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 new_route_ci_minutes_purchase true --dev
NOT RELEVANT -
/chatops run feature set new_route_ci_minutes_purchase true --staging
- [-]
-
Verify that the feature works as expected. Posting the QA result in this issue is preferable.
Preparation before production rollout
-
Ensure that the feature MRs have been deployed to both production and canary. -
/chatops run auto_deploy status <merge-commit-of-your-feature>
-
-
Check if the feature flag change needs to be accompanied with a change management issue. Crosslink 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 on-call SRE by using the @sre-oncall
Slack alias. -
Ensure that documentation has been updated (More info). Related MR - !68359 (merged) -
Announce on the feature issue an estimated time this will be enabled on GitLab.com. -
If the feature might impact the user experience, notify #support_gitlab-com
and your team channel (more guidance when this is necessary for the dev docs). -
If the feature flag in code has an actor, enable it on GitLab.com for testing groups/projects. -
/chatops run feature set --<actor-type>=<actor> new_route_ci_minutes_purchase true
-
-
Verify that the feature works as expected. Posting the QA result in this issue is preferable.
Global rollout on production
-
Incrementally roll out the feature. - If the feature flag in code has an actor, perform actor-based rollout.
-
/chatops run feature set <feature-flag-name> <rollout-percentage> --actors
-
- If the feature flag in code does NOT have an actor, perform time-based rollout (random rollout).
-
/chatops run feature set new_route_ci_minutes_purchase <rollout-percentage>
-
- Enable the feature globally in the production environment.
-
/chatops run feature set new_route_ci_minutes_purchase true
-
- If the feature flag in code has an actor, perform actor-based rollout.
-
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
The release of the feature will be handled in #337064 (closed)
Rollback Steps
-
This feature can be disabled by running the following Chatops command:
/chatops run feature set new_route_ci_minutes_purchase false