Skip to content

CNTRLPLANE-2652: Implement 5.0 EUS schedule in KAS-O#2024

Open
tjungblu wants to merge 1 commit intoopenshift:release-4.23from
tjungblu:CNTRLPLANE-2652
Open

CNTRLPLANE-2652: Implement 5.0 EUS schedule in KAS-O#2024
tjungblu wants to merge 1 commit intoopenshift:release-4.23from
tjungblu:CNTRLPLANE-2652

Conversation

@tjungblu
Copy link
Contributor

@tjungblu tjungblu commented Feb 2, 2026

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 minSupportedKubeletSkewForOpenShiftVersion from even/odd logic to Minor % 3 thresholds (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 unused regexp helper.

Written by Cursor Bugbot for commit e0b95d5. This will update automatically on new commits. Configure 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.

Signed-off-by: Thomas Jungblut <tjungblu@redhat.com>
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 2, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 2, 2026

@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.

Details

In response to this:

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

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.

@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

Important

Review skipped

Auto reviews are limited based on label configuration.

🚫 Review skipped — only excluded labels are configured. (1)
  • do-not-merge/work-in-progress

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Comment @coderabbitai help to get the list of available commands and usage tips.

@tjungblu tjungblu marked this pull request as ready for review February 2, 2026 13:28
@openshift-ci openshift-ci bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. labels Feb 2, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 2, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 2, 2026

@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.

Details

In response to this:

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]
Cursor Bugbot is generating a summary for commit e0b95d5. Configure here.

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.

@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 2, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 2, 2026

@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.

Details

In response to this:

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 minSupportedKubeletSkewForOpenShiftVersion from even/odd logic to Minor % 3 thresholds (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 unused regexp helper.

Written by Cursor Bugbot for commit e0b95d5. This will update automatically on new commits. Configure here.

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.

@openshift-ci openshift-ci bot requested review from p0lyn0mial and sanchezl February 2, 2026 13:33
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 2, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: tjungblu
Once this PR has been reviewed and has the lgtm label, please assign p0lyn0mial for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

// already in an unsupported state
skewedUnsupported = append(skewedUnsupported, nodeKubeletInfo{node: node.Name, version: &kubeletVersion})
case skewNextVersion < c.minSupportedSkewNextVersion:
case skewNextVersion <= c.minSupportedSkewNextVersion:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Fix in Cursor Fix in Web

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 23, 2026

@tjungblu: all tests passed!

Full PR test history. Your PR dashboard.

Details

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 kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants