Enhancement
Support for deployment strategies like blue/green
Why the request
For now the deployment strategy just replaces the current container with the new version and there is a slight downtime, which is fine for a demo. But then if you really want to use it for some sort of production deployment it should have an option for a better deployment strategy.
Totally agreed! That would be great. We've started pondering an istio approach for this in this issue: https://github.com/jenkins-x/jx/issues/582 am hoping we can add flexible promotion groups (e.g. Canary -> employees -> early adopters -> rolling upgrade across all other users) etc
Deployments have blue/green rolling-updates built-in (with unnoticed downtime). In order for this to work, the strategy for the rolling update must be filled out and a readiness probe must be specified.
Readiness probes by default report success immediately (see: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes).
Obviously, with applications starting up, they are not immediately available; however, kubernetes is already throwing traffic at them and terminating the previously working application which results in the issue described above.
TLDR version: Implement a Readiness Probe so that the kube scheduler knows when to swap out the new code with the old running code.
@andrewwippler do you have a suggested POC of what you're describing in the context of JX? I mean what you said sounds pretty much as you would do it in a hand made yaml world... but how is it done in jx?
canary is now supported with flagger https://blog.csanchez.org/2019/03/05/progressive-delivery-with-jenkins-x-automatic-canary-deployments/
Is there anyone knows whether the Blue/Green is supported?
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close.
Provide feedback via https://jenkins-x.io/community.
/lifecycle stale
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close.
Provide feedback via https://jenkins-x.io/community.
/lifecycle rotten
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://jenkins-x.io/community.
/close
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.
Provide feedback via https://jenkins-x.io/community.
/close
@jenkins-x-bot: Closing this issue.
In response to this:
Rotten issues close after 30d of inactivity.
Reopen the issue with/reopen.
Mark the issue as fresh with/remove-lifecycle rotten.
Provide feedback via https://jenkins-x.io/community.
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository.
Most helpful comment
Totally agreed! That would be great. We've started pondering an istio approach for this in this issue: https://github.com/jenkins-x/jx/issues/582 am hoping we can add flexible promotion groups (e.g. Canary -> employees -> early adopters -> rolling upgrade across all other users) etc