fix: support seamless upgrades with pod uid in socket path names + default helm chart values#113
Conversation
|
/assign |
39da3da to
28f1e83
Compare
28f1e83 to
ce936de
Compare
|
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
|
/remove-lifecycle stale |
|
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
|
The Kubernetes project currently lacks enough active contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle rotten |
|
/remove-lifecycle rotten |
ed5054b to
a68f70d
Compare
nojnhuh
left a comment
There was a problem hiding this comment.
/lgtm
Thanks @alimaazamat! Could you please squash down to one commit?
|
LGTM label has been added. DetailsGit tree hash: f3f1c421dc5b8f7c738ee6c521b0e31781ba3808 |
5e788f8 to
f48a596
Compare
…fault helm chart vals
f48a596 to
a56e95c
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: alimaazamat, nojnhuh The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Fixes issue #107
Socket path names in the format {baseName}{suffix} works fine for legacy deployments but if we have seamless upgrades (max surge 1 maxUnavailable 0) then it doesn't work because the socket path names include uid {baseName}-{uid}{suffix}.
Without UIDs in socket names: Two pods can't run simultaneously because they'd conflict trying to create the same socket file names.
Solution:
Include pod UID in socket paths. Define default seamless upgrade values. Chart now defaults to seamless upgrades (max surge 1 maxUnavailable 0) which users can override by setting
kubeletPlugin.updateStrategy.rollingUpdatevalues directly.How to test:
Results:
Seamless Upgrades Enabled default behavior:
maxSurge: 1, maxUnavailable: 0
Seamless Upgrades Disabled by user overriding helm chart:
maxSurge: 0, maxUnavailable: 1