Skip to content
GitLab
Next
    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    Projects Groups Topics Snippets
  • Register
  • Sign in
  • GitLab GitLab
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 55.4k
    • Issues 55.4k
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1.6k
    • Merge requests 1.6k
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • 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.orgGitLab.org
  • GitLabGitLab
  • Issues
  • #218139
Closed
Open
Issue created May 17, 2020 by Orit Golowinski@ogolowinskiContributor

Set deployment Traffic Weight via UI

Release notes

In release 13.7, you can change the canary weights directly from the deploy boards. Changing canary weights can be done directly from the .gitlab-ci.yml and by API, but having the ability to set this in the user interface has the benefit to be able to visually see the deployment and scale up/down of the pods directly from the deploy boards.

Problem to solve

As a developer, I want to be able to easily monitor and adjust the weight annotations of canary rollouts, so I can have greater control and confidence over manual or timed incremental roll-outs and mitigate risks.

Intended users

  • Sasha (Software Developer)

User experience goal

The user should be able to set the traffic weight via the UI

Proposal

Acceptance criteria

  • The feature is visible when canary deployments are enabled, it requires a manual set to inject CANARY_ENABLED variable.
  • Configuration of Stable VS Canary with set 5% percentage increments
  • Configuring one value also adjusts the other, they are connected.
  • Modal for verification of increment setting pops up after selection.
    • Title: Change the ratio of canary deployments?
    • Button: Cancel Tertiary, default
    • Button: Change ratio Primary, info
    • Body:
This will change the ratio of canary deployments vs stable deployments to:

Stable: X%
Canary: X%

Changing the ratio will start a redeployment. The ratio cannot be adjusted
again until the redeployment is complete
  • When a deployment is in progress, the controls are disabled and a tooltip is shown
    • Tooltip: Deployment in progress

Controls are available

Mockup (Figma document)
Configuration_of_canary_vs_base__1_
Copy might have changed, check acceptance criteria

Confirmation modal

Mockup (Figma document)
Modal__3_
Copy might have changed, check acceptance criteria

Controls are disabled due to a deployment change is in progress

Mockup (Figma document)
Deployment_in_progress
Copy might have changed, check acceptance criteria

Follow up issues

  • #244321

Further details

typical scenario of the rule is based on weight, that is, blue-green deployment. You can set the weight from 0 to 100 to implement that kind of application release. At any time, only one of the environments is production. For this example, currently green is production and blue is canary. Initially, the weight of canary is set to 0which means no traffic is forwarded to this release. You can introduce a small portion of traffic to blue version step by step, test and verify it. If everything is OK then you can shift all requests from green to blue by set the weight of blue to 100which makes blue the production release. In a word, with such canary releasing process, the application is upgraded smoothly.

image

nginx.ingress.kubernetes.io/canary-weight: The integer based (0 - 100) percent of random requests that should be routed to the service specified in the canary Ingress. A weight of 0 implies that no requests will be sent to the service in the Canary ingress by this canary rule. A weight of 100 means implies all requests will be sent to the alternative service specified in the Ingress.

Permissions and Security

Documentation

Availability & Testing

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

What is the type of buyer?

Is this a cross-stage feature?

Links / references

Edited Nov 18, 2020 by Orit Golowinski
Assignee
Assign to
Time tracking