-
Notifications
You must be signed in to change notification settings - Fork 861
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce steps into blueGreen strategy #19
Comments
After discussing the above feature internally and with users, we realized that adding steps will overcomplicate the BlueGreen strategy with only a little added benefit. Steps were considered to provide flexibility for users to define how they would like their BlueGreen strategy to deploy, but we found that we can cover all the relevant use cases through two new fields. The field, pauseForSecondsBeforeSwitchActive, would introduce the ability to pause for a time duration before switching the active service, and the field, waitBeforeScalingDown, would introduce the ability to not scale down the old active replicaset. This issue will now implement these fields |
Another reason for a pauseBeforeScalingDown field: Changing the selector on a service can be a non-trivial operation on a cluster. In the case of a node port service, the Kubernetes cluster will need to update the IP tables of every node to reflect the new selector. With a large enough cluster, the rollout could scale down an old replicaset before the selector change is propagated to the entire cluster. Those requests will fail because there is no service behind the endpoint. Unfortunately, the Argo Rollout controller has a hard time detecting when this work is done because the different CNIs handle networking differently and Argo Rollouts will require significantly more permissions to detect the changes. In order to provide a solution, Argo Rollouts should have a configurable amount of time before the old replicaset is scaled down to prevent traffic from going to deleted pods. Related Articles: |
Closing as both PRs are merged |
blueGreen deploy strategy should have a
steps
field to control the rollout. Here is the current proposal:The text was updated successfully, but these errors were encountered: