Conversation
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
gagan16k
marked this pull request as draft
September 16, 2026 18:35
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
- Add artifact upload for logs on failure in CI - Introduce KUBE_API_QPS and KUBE_API_BURST parameters for simulated provider - Update polling interval for simulated provider tests - Modify machine status checks to improve recovery logic, add new annotation - Modify kwok config to work quicker Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
Signed-off-by: Gagan163264 <gagan.surathkal@gmail.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
/kind flake
What this PR does / why we need it:
This PR addresses some bugs in MCM surfaced by integration tests on kwok:
Terminatingphasemachine.goAutoPreserveFailedMachineMaxreduction tests result in deletion of both machinesmachineset.go,machineset_test.goAutoPreserveFailedMachineMaxwas reduced (2 -> 1), the controller unpreserved both machines instead of one, and both got deleted.Status.AutoPreserveFailedMachineCountand wrote it to the API server but it hadn't yet been persisted in the lister cache . The second still read the stale count (2), thought it needed to remove one more, and unpreserved the second machine too.Status.AutoPreserveFailedMachineCount. A second reconcile then sees the reduced count and does nothing. The oldest machine is un-preserved first. Added unit tests inmachineset_test.goto cover these cases.Other changes to address a set of flakes in the existing integration tests.
Manual Preservationtests (from 3 inauto-preservationtests) terminated a machine that got picked up by a test spec.framework.goBeforeEachnode readiness check stalls on a preserved nodenodes.go,kwok-config.yamlBeforeEachwaits until every node is Ready (GetNumberOfReadyNodes == GetNumberOfNodes). Kwok sometimes does not update the leases until a nodeupdateevent forces it to do so, and thekwok/fail-condition":"Recover"does this. TheGet->Updateway can sometimes not persist due to conflict errors. Nodes recovering from an earlier spec go through the kwoknode-recoverstage, which kept them NotReady for a long time. The next spec hangs waiting for nodes to be ready.isNodePreserved(checks for theNodePreservedTaintKeytaint) and exclude preserved nodes from bothGetNumberOfReadyNodesandGetNumberOfNodes, in case kwok took a very long time to update (even if it fails to do so, this machine will be replaced). Tighten the kwoknode-recoverstage (immediateNextStage: true) so recovering nodes come back faster. Also switchedaddNodeRecoverAnnotationto a strategic-mergePatchto avoid update conflicts while the node is recovering.machine_resources.goDeferCleanupgets picked up. This could have apreserve=falseannotation and can get deleted as a consequence.GetRunningMachineListbyLastUpdateTimeascending, so specs pick the machine that has been running the longest instead of a recently churned one. The tightened kwoknode-recoverstage also shrinks this window.framework.goOther changes/improvements:
- Added more detailed logging in
framework.gowhich now tells exactly which machine a test is being executed on.- Make target to easily export kubeconfig of a simulated cluster
- Requeue preserved machines at their PreserveExpiryTime to avoid them potentially waiting a full reconcile (10mins)
Release note: