OCPBUGS-112638: Enable DeviceTaintRule API for hosted clusters - #9518
OCPBUGS-112638: Enable DeviceTaintRule API for hosted clusters#9518harche wants to merge 1 commit into
Conversation
Enable resource.k8s.io/v1beta2 when DRADeviceTaintRules is active on a Kubernetes 1.36 hosted control plane. This allows the scheduler's DeviceTaintRule informer to synchronize. Read the Kubernetes version from control plane release metadata so the prerelease API is not enabled before 1.36 or after DeviceTaintRule graduates to v1 in 1.37. Signed-off-by: Harshal Patil <12152047+harche@users.noreply.github.com>
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
Skipping CI for Draft Pull Request. |
|
@harche: This pull request references Jira Issue OCPBUGS-112638, which is valid. 3 validation(s) were run on this bug
The bug has been updated to refer to the pull request using the external bug tracker. 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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughThe API server configuration now resolves the Kubernetes component version from the release image provider when Sequence Diagram(s)sequenceDiagram
participant API server config
participant Release image provider
participant Runtime configuration
API server config->>Release image provider: request Kubernetes component version
Release image provider-->>API server config: return component version or error
API server config->>Runtime configuration: enable resource.k8s.io/v1beta2 for Kubernetes 1.36
Suggested reviewers: Merge Risk: ⚪ Minimal · up to This enables the required resource API only for Kubernetes 1.36 clusters with DRADeviceTaintRules enabled, preventing scheduler synchronization failures while preserving behavior for other versions and disabled gates. 🚥 Pre-merge checks | ✅ 11✅ Passed checks (11 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: harche 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 |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #9518 +/- ##
=======================================
Coverage 47.11% 47.12%
=======================================
Files 786 786
Lines 99220 99245 +25
=======================================
+ Hits 46744 46765 +21
- Misses 49317 49321 +4
Partials 3159 3159
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
|
@harche: 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. |
|
/uncc |
What this PR does / why we need it:
Enables the
resource.k8s.io/v1beta2API in hosted kube-apiservers when theDRADeviceTaintRulesfeature gate is enabled on Kubernetes 1.36.Without the runtime API, kube-scheduler enables its
DeviceTaintRuleinformer but cannot list the resource. The informer never synchronizes, preventing the production scheduler from starting and leaving hosted-cluster workloads unscheduled after bootstrap.The mapping is limited to Kubernetes 1.36.
DeviceTaintRuleis unavailable before 1.36 and graduates toresource.k8s.io/v1in Kubernetes 1.37. The Kubernetes version is read from the control-plane release component metadata, and is only requested when the feature gate is enabled.Related changes:
DRADeviceTaintRulesin TechPreviewNoUpgrade.Failure analysis: openshift/api#3004 (comment)
Which issue(s) this PR fixes:
Related to OCPBUGS-112638
Special notes for your reviewer:
The mapping is dormant when
DRADeviceTaintRulesis absent or disabled, allowing this change to merge before openshift/api#3004 activates the gate.Unit coverage includes Kubernetes 1.35, 1.36, and 1.37; a disabled gate; missing Kubernetes component metadata; and component-version lookup errors.
Checklist:
Summary by CodeRabbit
New Features
resource.k8s.io/v1beta2runtime configuration on Kubernetes 1.36 whenDRADeviceTaintRulesis enabled.Bug Fixes