Implement Scale Up/Down Switch from Deploy Boards
Problem to solve
As a developer using blue/green deployment strategy, I would like to visualize the rollout of the traffic and would like to be able to switch from blue<->green easily from the deploy board.
User experience goal
- Introduce visual representation on the deploy board if the deployment is currently on primary or secondary
- Introduce a new "scale up" and "scale down" buttons on the deploy board that will call the Operators change traffic weight via API and switch primary<->secondary
This will in fact scale up to 100% or scaled down to 0% like our current canary solution supports
In future iterations users will be able to configure the scale up/down percent - not in scope of this issue
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.
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.