-
Notifications
You must be signed in to change notification settings - Fork 96
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
Implement delayed termination to achieve zero downtime upgrades #1159
Conversation
a4e3bdd
to
9b29679
Compare
Problem: During an upgrade of NGF, external clients can experience downtime. Solution: - Introduce configurable delayed termination. - Add sleep subcommand to gateway binary - Add lifecycle paramaters to helm to both nginx-gateway and nginx containers. - Add terminationGracePeriodSeconds parameter to helm. - Add affinity parameter to helm (primary needed for testing to prevent pods running on the same node). - Rerun zero downtime non-functional tests. Testing: - Manual testing SOLVES nginxinc#1155
9b29679
to
7d57948
Compare
Do you think it would be a good idea to set a maximum sleep duration? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:nice!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
It is hard to come up with a reasonable maximum. |
tests/zero-downtime-upgrades/results/1.0.0-special/1.0.0-special.md
Outdated
Show resolved
Hide resolved
…al.md Co-authored-by: Saylor Berman <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀
Proposed changes
Problem:
During an upgrade of NGF, external clients can experience downtime.
Solution:
containers.
prevent pods running on the same node).
Testing:
Closes #1155
Checklist
Before creating a PR, run through this checklist and mark each as complete.