Skip to content

GitLab Next

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 42,996
    • Issues 42,996
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1,351
    • Merge requests 1,351
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GitLab.org
  • GitLabGitLab
  • Issues
  • #8240
Closed
Open
Created Nov 01, 2018 by Jason Yavorska@jyavorskaContributor

Add % rollout strategy to Feature Flags

Problem to solve

We recently rolled out feature flags with the ability to turn them off or on per environment. Another important capability of feature flags is to be able to set a rollout % for an environment, where a certain number of requests are responded to with the feature on or off. Enabling this feature will allow teams to do controlled rollouts, monitoring behavior of the target environment to ensure the results are as expected.

Proposal

What we need is to support the https://github.com/Unleash/unleash/blob/master/docs/activation-strategies.md#gradualrolloutuserid strategy, which randomly rolls out to users based on userid (of the client application, not GitLab userid) to ensure a consistent experience from pageload to pageload. In the future we can add a completely random strategy if customer demand presents itself, or session stickiness for non-logged in experiences.

We need to:

  • Allow for % rollout to be set on a per-environment basis in the FF UI and API
  • Update our implementation of the server to return the current % rollout state
  • Show the % rollout value for a particular environment in the feature flag table view

UX Proposal

Adding minimal change to the current implementation. Moving forward but awaiting feedback on https://gitlab.com/gitlab-org/gitlab-ee/issues/8240#note_167694060

User has the ability to set a rollout percentage on the detail view of a feature flag. An input text is present. The percentage range is 0-100 as per the documentation.

Once a percentage is set and saved, the user should see the amount in the list view of feature flags. Show the percent if Percent rollout is chosen or All users if that option is chosen.

  • Only show the percent field if Percent rollout is chosen.
  • Default the percentage to 100%
  • Validation to force the percentage number to be between 0-100

ee_8240-percent-rollout-feature-flags_

ee_8240-percent-rollout-feature-flags-list

What does success look like, and how can we measure that?

This should continue to drive adoption of the Feature Flags feature by making it more complete for normal use cases.

Links / references

Edited Jun 25, 2019 by Mike Nichols
Assignee
Assign to
Time tracking