-
Notifications
You must be signed in to change notification settings - Fork 1.4k
🐛 Fix race conditions ScaleDownOldMS #12812
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
Open
fabriziopandini
wants to merge
6
commits into
kubernetes-sigs:main
Choose a base branch
from
fabriziopandini:fix-scaleDownOldMS
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+1,442
−333
Open
Changes from 1 commit
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
d16533a
Fix ScaleDownOldMS
fabriziopandini 142d1de
Minor improvements
fabriziopandini aca5de4
Address feedback
fabriziopandini 7e8ac3a
Fix review findings
sbueringer 26e82c4
Merge pull request #314 from sbueringer/fix-scaleDownOldMS-fixups
fabriziopandini 40f23d9
More comments
fabriziopandini File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
286 changes: 134 additions & 152 deletions
286
internal/controllers/machinedeployment/machinedeployment_rolling.go
Large diffs are not rendered by default.
Oops, something went wrong.
516 changes: 390 additions & 126 deletions
516
internal/controllers/machinedeployment/machinedeployment_rolling_test.go
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
59 changes: 59 additions & 0 deletions
59
...ut, 12 replicas, maxsurge 3, maxunavailable 1, scale down to 6, random(0).test.log.golden
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
## Regular rollout, 12 Replicas, maxSurge 3, maxUnavailable 1, scale down to 6, random(0) | ||
|
||
[Test] Initial state | ||
md, 6/6 replicas | ||
- ms1, 9/9 replicas (m4,m5,m6,m7,m8,m9,m10,m11,m12) | ||
- ms2, 3/3 replicas (m13,m14,m15) | ||
[Test] Rollout 12 replicas, MaxSurge=3, MaxUnavailable=1, random(0) | ||
[MS controller] Iteration 1, Reconcile ms2, 3/3 replicas (m13,m14,m15) | ||
[MS controller] Iteration 1, Reconcile ms1, 9/9 replicas (m4,m5,m6,m7,m8,m9,m10,m11,m12) | ||
[MD controller] Iteration 1, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 6/6 replicas | ||
- ms1, 9/9 replicas (m4,m5,m6,m7,m8,m9,m10,m11,m12) | ||
- ms2, 3/3 replicas (m13,m14,m15) | ||
[MD controller] - Result of rollout planner | ||
md, 12/6 replicas | ||
- ms1, 9/2 replicas (m4,m5,m6,m7,m8,m9,m10,m11,m12) | ||
- ms2, 3/3 replicas (m13,m14,m15) | ||
[Toleration] tolerate maxSurge breach | ||
[MS controller] Iteration 2, Reconcile ms1, 9/2 replicas (m4,m5,m6,m7,m8,m9,m10,m11,m12) | ||
[MS controller] - ms1 scale down to 2/2 replicas (m4,m5,m6,m7,m8,m9,m10 deleted) | ||
[MS controller] Iteration 2, Reconcile ms1, 2/2 replicas (m11,m12) | ||
[MD controller] Iteration 3, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 12/6 replicas | ||
- ms1, 2/2 replicas (m11,m12) | ||
- ms2, 3/3 replicas (m13,m14,m15) | ||
[MD controller] - Result of rollout planner | ||
md, 5/6 replicas | ||
- ms1, 2/2 replicas (m11,m12) | ||
- ms2, 3/6 replicas (m13,m14,m15) | ||
[MS controller] Iteration 3, Reconcile ms2, 3/6 replicas (m13,m14,m15) | ||
[MS controller] - ms2 scale up to 6/6 replicas (m16,m17,m18 created) | ||
[MD controller] Iteration 4, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 5/6 replicas | ||
- ms1, 2/2 replicas (m11,m12) | ||
- ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) | ||
[MD controller] - Result of rollout planner | ||
md, 8/6 replicas | ||
- ms1, 2/0 replicas (m11,m12) | ||
- ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) | ||
[MS controller] Iteration 4, Reconcile ms1, 2/0 replicas (m11,m12) | ||
[MS controller] - ms1 scale down to 0/0 replicas (m11,m12 deleted) | ||
[MS controller] Iteration 4, Reconcile ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) | ||
[MS controller] Iteration 5, Reconcile ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) | ||
[MD controller] Iteration 5, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 8/6 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) | ||
[MD controller] - Result of rollout planner | ||
md, 6/6 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) | ||
[Test] Final state | ||
md, 6/6 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 6/6 replicas (m13,m14,m15,m16,m17,m18) |
105 changes: 105 additions & 0 deletions
105
...data/regular rollout, 3 replicas, maxsurge 0, maxunavailable 1, random(0).test.log.golden
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
## Regular rollout, 3 Replicas, maxSurge 0, maxUnavailable 1, random(0) | ||
|
||
[Test] Initial state | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/0 replicas () | ||
[Test] Rollout 3 replicas, MaxSurge=0, MaxUnavailable=1, random(0) | ||
[MS controller] Iteration 1, Reconcile ms2, 0/0 replicas () | ||
[MS controller] Iteration 1, Reconcile ms1, 3/3 replicas (m1,m2,m3) | ||
[MD controller] Iteration 1, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/0 replicas () | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/2 replicas (m1,m2,m3) | ||
- ms2, 0/0 replicas () | ||
[MS controller] Iteration 2, Reconcile ms1, 3/2 replicas (m1,m2,m3) | ||
[MS controller] - ms1 scale down to 2/2 replicas (m1 deleted) | ||
[MS controller] Iteration 2, Reconcile ms1, 2/2 replicas (m2,m3) | ||
[MD controller] Iteration 3, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 2/2 replicas (m2,m3) | ||
- ms2, 0/0 replicas () | ||
[MD controller] - Result of rollout planner | ||
md, 2/3 replicas | ||
- ms1, 2/2 replicas (m2,m3) | ||
- ms2, 0/1 replicas () | ||
[MS controller] Iteration 3, Reconcile ms2, 0/1 replicas () | ||
[MS controller] - ms2 scale up to 1/1 replicas (m4 created) | ||
[MD controller] Iteration 4, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 2/3 replicas | ||
- ms1, 2/2 replicas (m2,m3) | ||
- ms2, 1/1 replicas (m4) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 2/1 replicas (m2,m3) | ||
- ms2, 1/1 replicas (m4) | ||
[MS controller] Iteration 4, Reconcile ms1, 2/1 replicas (m2,m3) | ||
[MS controller] - ms1 scale down to 1/1 replicas (m2 deleted) | ||
[MS controller] Iteration 4, Reconcile ms2, 1/1 replicas (m4) | ||
[MS controller] Iteration 5, Reconcile ms2, 1/1 replicas (m4) | ||
[MD controller] Iteration 5, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 1/1 replicas (m3) | ||
- ms2, 1/1 replicas (m4) | ||
[MD controller] - Result of rollout planner | ||
md, 2/3 replicas | ||
- ms1, 1/1 replicas (m3) | ||
- ms2, 1/2 replicas (m4) | ||
[MS controller] Iteration 6, Reconcile ms2, 1/2 replicas (m4) | ||
[MS controller] - ms2 scale up to 2/2 replicas (m5 created) | ||
[MD controller] Iteration 7, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 2/3 replicas | ||
- ms1, 1/1 replicas (m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MS controller] Iteration 7, Reconcile ms2, 2/2 replicas (m4,m5) | ||
[MD controller] Iteration 8, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MS controller] Iteration 8, Reconcile ms1, 1/0 replicas (m3) | ||
[MS controller] - ms1 scale down to 0/0 replicas (m3 deleted) | ||
[MS controller] Iteration 9, Reconcile ms2, 2/2 replicas (m4,m5) | ||
[MS controller] Iteration 9, Reconcile ms1, 0/0 replicas () | ||
[MD controller] Iteration 9, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MD controller] - Result of rollout planner | ||
md, 2/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 2/3 replicas (m4,m5) | ||
[MS controller] Iteration 10, Reconcile ms2, 2/3 replicas (m4,m5) | ||
[MS controller] - ms2 scale up to 3/3 replicas (m6 created) | ||
[MS controller] Iteration 10, Reconcile ms1, 0/0 replicas () | ||
[MS controller] Iteration 11, Reconcile ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] Iteration 11, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 2/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[Test] Final state | ||
md, 3/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 3/3 replicas (m4,m5,m6) |
136 changes: 136 additions & 0 deletions
136
...data/regular rollout, 3 replicas, maxsurge 1, maxunavailable 0, random(0).test.log.golden
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
## Regular rollout, 3 Replicas, maxSurge 1, maxUnavailable 0, random(0) | ||
|
||
[Test] Initial state | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/0 replicas () | ||
[Test] Rollout 3 replicas, MaxSurge=1, MaxUnavailable=0, random(0) | ||
[MS controller] Iteration 1, Reconcile ms2, 0/0 replicas () | ||
[MS controller] Iteration 1, Reconcile ms1, 3/3 replicas (m1,m2,m3) | ||
[MD controller] Iteration 1, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/0 replicas () | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/1 replicas () | ||
[MS controller] Iteration 2, Reconcile ms1, 3/3 replicas (m1,m2,m3) | ||
[MS controller] Iteration 2, Reconcile ms1, 3/3 replicas (m1,m2,m3) | ||
[MD controller] Iteration 3, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/1 replicas () | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 0/1 replicas () | ||
[MS controller] Iteration 3, Reconcile ms2, 0/1 replicas () | ||
[MS controller] - ms2 scale up to 1/1 replicas (m4 created) | ||
[MD controller] Iteration 4, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 3/3 replicas (m1,m2,m3) | ||
- ms2, 1/1 replicas (m4) | ||
[MD controller] - Result of rollout planner | ||
md, 4/3 replicas | ||
- ms1, 3/2 replicas (m1,m2,m3) | ||
- ms2, 1/1 replicas (m4) | ||
[MS controller] Iteration 4, Reconcile ms1, 3/2 replicas (m1,m2,m3) | ||
[MS controller] - ms1 scale down to 2/2 replicas (m1 deleted) | ||
[MS controller] Iteration 4, Reconcile ms2, 1/1 replicas (m4) | ||
[MS controller] Iteration 5, Reconcile ms2, 1/1 replicas (m4) | ||
[MD controller] Iteration 5, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 4/3 replicas | ||
- ms1, 2/2 replicas (m2,m3) | ||
- ms2, 1/1 replicas (m4) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 2/2 replicas (m2,m3) | ||
- ms2, 1/2 replicas (m4) | ||
[MS controller] Iteration 6, Reconcile ms2, 1/2 replicas (m4) | ||
[MS controller] - ms2 scale up to 2/2 replicas (m5 created) | ||
[MD controller] Iteration 7, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 2/2 replicas (m2,m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MD controller] - Result of rollout planner | ||
md, 4/3 replicas | ||
- ms1, 2/1 replicas (m2,m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MS controller] Iteration 7, Reconcile ms2, 2/2 replicas (m4,m5) | ||
[MD controller] Iteration 8, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 4/3 replicas | ||
- ms1, 2/1 replicas (m2,m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MD controller] - Result of rollout planner | ||
md, 4/3 replicas | ||
- ms1, 2/1 replicas (m2,m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MS controller] Iteration 8, Reconcile ms1, 2/1 replicas (m2,m3) | ||
[MS controller] - ms1 scale down to 1/1 replicas (m2 deleted) | ||
[MS controller] Iteration 9, Reconcile ms2, 2/2 replicas (m4,m5) | ||
[MS controller] Iteration 9, Reconcile ms1, 1/1 replicas (m3) | ||
[MD controller] Iteration 9, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 4/3 replicas | ||
- ms1, 1/1 replicas (m3) | ||
- ms2, 2/2 replicas (m4,m5) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 1/1 replicas (m3) | ||
- ms2, 2/3 replicas (m4,m5) | ||
[MS controller] Iteration 10, Reconcile ms2, 2/3 replicas (m4,m5) | ||
[MS controller] - ms2 scale up to 3/3 replicas (m6 created) | ||
[MS controller] Iteration 10, Reconcile ms1, 1/1 replicas (m3) | ||
[MS controller] Iteration 11, Reconcile ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] Iteration 11, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 3/3 replicas | ||
- ms1, 1/1 replicas (m3) | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] - Result of rollout planner | ||
md, 4/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] Iteration 12, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 4/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] - Result of rollout planner | ||
md, 4/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] Iteration 14, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 4/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] - Result of rollout planner | ||
md, 4/3 replicas | ||
- ms1, 1/0 replicas (m3) | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MS controller] Iteration 15, Reconcile ms2, 3/3 replicas (m4,m5,m6) | ||
[MS controller] Iteration 16, Reconcile ms2, 3/3 replicas (m4,m5,m6) | ||
[MS controller] Iteration 16, Reconcile ms2, 3/3 replicas (m4,m5,m6) | ||
[MS controller] Iteration 16, Reconcile ms1, 1/0 replicas (m3) | ||
[MS controller] - ms1 scale down to 0/0 replicas (m3 deleted) | ||
[MD controller] Iteration 16, Reconcile md | ||
[MD controller] - Input to rollout planner | ||
md, 4/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[MD controller] - Result of rollout planner | ||
md, 3/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 3/3 replicas (m4,m5,m6) | ||
[Test] Final state | ||
md, 3/3 replicas | ||
- ms1, 0/0 replicas () | ||
- ms2, 3/3 replicas (m4,m5,m6) |
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.