[registry-facade] Support zero-downtime updates #2601
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds live socket handover support to registry-facade. Through this method we can update registry-facade without any downtime. The process is described in #2512.
To make the handover work, we have to run registry-facade in the
hostNetwork
. Otherwise we'd attempt to re-use a socket in a network namespace that no longer exists. Hence, by default handover support is disabled.How to test
TODO(cw)
Open Questions
Kubernetes just merged support for surge rollouts in daemonSets yet (KEP, PR). It will take a while until that becomes generally available. Until then we need some other convenient way to facilitate the handover, e.g. a separate daemonSet that can be deployed prior to the update. How would that look like? Would that be its own chart?
/werft https
/werft registry-facade-handover