CNTRLPLANE-2652: Implement 5.0 EUS schedule in KAS-O#2024
CNTRLPLANE-2652: Implement 5.0 EUS schedule in KAS-O#2024tjungblu wants to merge 1 commit intoopenshift:release-4.23from
Conversation
Implements the new EUS schedule (every third release instead of every second) in the kubelet skew guard controller. This is intended to be merged into the 5.0 branch, once it opens. Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
|
@tjungblu: This pull request references CNTRLPLANE-2652 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.23.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
Important Review skippedAuto reviews are limited based on label configuration. 🚫 Review skipped — only excluded labels are configured. (1)
Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
✨ Finishing touches🧪 Generate unit tests (beta)
Comment |
|
Skipping CI for Draft Pull Request. |
|
@tjungblu: This pull request references CNTRLPLANE-2652 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.23.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@tjungblu: This pull request references CNTRLPLANE-2652 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.23.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: tjungblu 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 |
| // already in an unsupported state | ||
| skewedUnsupported = append(skewedUnsupported, nodeKubeletInfo{node: node.Name, version: &kubeletVersion}) | ||
| case skewNextVersion < c.minSupportedSkewNextVersion: | ||
| case skewNextVersion <= c.minSupportedSkewNextVersion: |
There was a problem hiding this comment.
Comparison change incorrectly flags supported kubelet versions
Medium Severity
The change from < to <= on line 133 causes kubelets that would be exactly at the minimum supported skew after upgrade to be incorrectly flagged as "will not be supported". If minSupportedSkewNextVersion is -3, a kubelet that would be at skew -3 after upgrade IS supported (at the boundary). The minSupportedSkew check on line 130 uses <, correctly treating the minimum as an inclusive boundary. Using <= here creates an inconsistency where kubelets at the exact supported boundary are incorrectly reported as unsupported for the next upgrade.
There was a problem hiding this comment.
I actually added a unit test to cover this with the spreadsheet that Luis created. I think the reason it worked before was the "skew-1" and "mod 2" combination. With mod 3 this doesn't evaluate correctly anymore.
|
@tjungblu: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |


Implements the new EUS schedule (every third release instead of every second) in the kubelet skew guard controller.
This is intended to be merged into the 5.0 branch, once it opens. Targeting 4.23 for now, as this will become 5.0 with a FF rule in the future.
/hold
Note
High Risk
Changes upgradeability gating logic for kubelet/API minor-version skew, which can block or allow cluster upgrades. A small off-by-one or cadence mismatch could impact upgrade safety across versions.
Overview
Updates the kubelet version skew controller to follow the 5.x EUS cadence (every third minor) by changing
minSupportedKubeletSkewForOpenShiftVersionfrom even/odd logic toMinor % 3thresholds (allowing up to 1/2/3 minor lag depending on the release).Tightens the “next upgrade would be unsupported” check from
<to<=, and refreshes unit tests to model 5.0–5.2/k8s 1.36–1.38 scenarios with new expected upgradeability outcomes. Also removes an unusedregexphelper.Written by Cursor Bugbot for commit e0b95d5. This will update automatically on new commits. Configure here.