Skip to content

OCPNODE-4659: Register DRANodeAllocatableResources feature gate for TechPreview - #2981

Open
harche wants to merge 1 commit into
openshift:masterfrom
harche:ocpnode-4659-dra-node-allocatable-gate
Open

OCPNODE-4659: Register DRANodeAllocatableResources feature gate for TechPreview#2981
harche wants to merge 1 commit into
openshift:masterfrom
harche:ocpnode-4659-dra-node-allocatable-gate

Conversation

@harche

Copy link
Copy Markdown
Contributor

Registers the upstream DRANodeAllocatableResources feature gate (KEP-5517, alpha in k8s 1.37) so it can be enabled on TechPreviewNoUpgrade and DevPreviewNoUpgrade clusters.

The gate and the alpha-1 API (pod.status.nodeAllocatableResourceClaimStatuses) are already present in the current Kubernetes 1.36 base of openshift/kubernetes, so this registration is valid now. The full alpha-2 implementation — the ResourceSlice device overhead API (kubernetes/kubernetes#140009) — arrives with the 1.37 rebase; DRA drivers publishing overhead (e.g. dra-driver-nvidia-gpu#1329, dra-driver-google-tpu#30) become testable in OCP at that point.

Generated files updated via make update-payload-featuregates.

Tracking: OCPNODE-4659 under epic OCPNODE-4656.

…echPreview
Register the upstream DRANodeAllocatableResources feature gate (KEP-5517,
alpha) so it can be enabled on TechPreviewNoUpgrade and DevPreviewNoUpgrade
clusters. The gate and alpha-1 API are present in the current Kubernetes
1.36 base; the full alpha-2 implementation (ResourceSlice device overhead)
arrives with the 1.37 rebase.
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci-robotopenshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 13, 2026
@openshift-ci-robot

openshift-ci-robot commented Aug 13, 2026

Copy link
Copy Markdown

@harche: This pull request references OCPNODE-4659 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 "5.0.0" version, but no target version was set.

Details

In response to this:

Registers the upstream DRANodeAllocatableResources feature gate (KEP-5517, alpha in k8s 1.37) so it can be enabled on TechPreviewNoUpgrade and DevPreviewNoUpgrade clusters.

The gate and the alpha-1 API (pod.status.nodeAllocatableResourceClaimStatuses) are already present in the current Kubernetes 1.36 base of openshift/kubernetes, so this registration is valid now. The full alpha-2 implementation — the ResourceSlice device overhead API (kubernetes/kubernetes#140009) — arrives with the 1.37 rebase; DRA drivers publishing overhead (e.g. dra-driver-nvidia-gpu#1329, dra-driver-google-tpu#30) become testable in OCP at that point.

Generated files updated via make update-payload-featuregates.

Tracking: OCPNODE-4659 under epic OCPNODE-4656.

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

Copy link
Copy Markdown
Contributor

Hello @harche! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ciopenshift-ciBot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Aug 13, 2026
@coderabbitai

coderabbitaiBot commented Aug 13, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 5a8fcbf7-0029-4399-bd83-df80380fb444

📥 Commits

Reviewing files that changed from the base of the PR and between 9d7eaab and c6860c3.

📒 Files selected for processing (10)
  • features.md
  • features/features.go
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-TechPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-Default.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-SelfManagedHA-TechPreviewNoUpgrade.yaml

📝 Walkthrough

Walkthrough

This change adds and registers the DRANodeAllocatableResources feature gate. The feature matrix marks it enabled for DevPreviewNoUpgrade and TechPreviewNoUpgrade on HyperShift and self-managed HA. The corresponding manifests enable the gate for those preview channels and disable it for Default and OKD configurations.

Suggested reviewers:jsafrane, jcmoraisjr, rikatz

Mergeability Score:⚪ Minimal · up to c6860

This PR registers the feature gate and updates its generated manifests without introducing any supported merge-blocking risk; no actionable risk remains.

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check nameStatusExplanation
Title check✅ PassedThe title clearly identifies the registration of the DRANodeAllocatableResources feature gate for TechPreview.
Description check✅ PassedThe description accurately explains the feature gate registration, target configurations, Kubernetes versions, generated files, and tracking issue.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names✅ PassedThe PR diff changes only feature metadata and YAML manifests; it adds no test files or Ginkgo title calls, so no unstable test name is introduced.
Test Structure And Quality✅ PassedThe pull request changes one Go declaration, one Markdown row, and eight YAML manifests; it adds no Ginkgo test code or cluster operations to review.
Microshift Test Compatibility✅ PassedThe verified diff adds only feature metadata, feature-gate registration, and YAML manifests; it adds no Ginkgo e2e tests, so the MicroShift compatibility check is inapplicable.
Single Node Openshift (Sno) Test Compatibility✅ PassedThe HEAD^..HEAD diff adds only feature-gate registration, documentation, and YAML manifests; it adds no Ginkgo tests or multi-node test behavior.
Topology-Aware Scheduling Compatibility✅ PassedThe diff adds only a feature registration, documentation, and feature-gate entries; no deployment/controller scheduling constraints or topology-sensitive fields are introduced.
Ote Binary Stdout Contract✅ PassedThe commit changes only feature-gate registration, documentation, and YAML manifests; the new top-level initializer performs validation and map registration, with no stdout write.
Ipv6 And Disconnected Network Test Compatibility✅ PassedThe diff adds a feature declaration, documentation, and YAML manifests only; it adds no Ginkgo e2e tests, IPv4 assumptions, or external connectivity.
No-Weak-Crypto✅ PassedThe PR diff adds only a feature-gate declaration, matrix row, and manifest entries; no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, custom crypto, or secret comparisons are added.
Container-Privileges✅ PassedThe commit only adds a feature-gate registration and feature-gate names; changed lines contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, or allowPrivilegeEscalation fields.
No-Sensitive-Data-In-Logs✅ PassedThe diff adds only feature-gate metadata and manifest entries; added-line searches found no logging calls or sensitive data, and no passwords, tokens, keys, PII, hostnames, or customer data.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.12.2)

Error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented
The command is terminated due to an error: build linters: unable to load custom analyzer "kubeapilinter": tools/_output/bin/kube-api-linter.so, plugin: not implemented


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@haircommander

Copy link
Copy Markdown
Member

let's wait until next week once branching is done so as to not interrupt branch day activities
/hold

@openshift-ciopenshift-ciBot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 13, 2026
@haircommander

Copy link
Copy Markdown
Member

/lgtm

for after branch

@openshift-ciopenshift-ciBot added the lgtm Indicates that a PR is ready to be merged. label Aug 13, 2026
@openshift-ci

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: haircommander
Once this PR has been reviewed and has the lgtm label, please assign joelspeed 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

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Scheduling tests matching the pipeline_run_if_changed or not excluded by pipeline_skip_if_only_changed parameters:
/test e2e-aws-ovn
/test e2e-aws-ovn-hypershift
/test e2e-aws-ovn-hypershift-conformance
/test e2e-aws-ovn-techpreview
/test e2e-aws-serial-1of2
/test e2e-aws-serial-2of2
/test e2e-aws-serial-techpreview-1of2
/test e2e-aws-serial-techpreview-2of2
/test e2e-azure
/test e2e-gcp
/test e2e-upgrade
/test e2e-upgrade-out-of-change
/test minor-e2e-upgrade-minor

@openshift-ci

Copy link
Copy Markdown
Contributor

@harche: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test nameCommitDetailsRequiredRerun command
ci/prow/e2e-aws-ovn-hypershift-conformancec6860c3linktrue/test e2e-aws-ovn-hypershift-conformance
ci/prow/e2e-aws-ovn-hypershiftc6860c3linktrue/test e2e-aws-ovn-hypershift
ci/prow/e2e-aws-serial-techpreview-1of2c6860c3linktrue/test e2e-aws-serial-techpreview-1of2

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.

@JoelSpeed

Copy link
Copy Markdown
Contributor

What API surface will we enable by enabling this gate?

@harche

Copy link
Copy Markdown
ContributorAuthor

Sure, happy to lay it out.

The gate is upstream only (productScope(kubernetes)), so it registers nothing in openshift/api itself. On our current 1.36 base it turns on exactly two alpha fields, both carrying +featureGate=DRANodeAllocatableResources upstream.

ResourceSlice in resource.k8s.io, written by the DRA driver

spec.devices[*].nodeAllocatableResourceMappings, a map[v1.ResourceName]NodeAllocatableResourceMapping holding capacityKey and allocationMultiplier: field, type. It also appears in v1beta1 and v1beta2.

PodStatus in core/v1, written by kubelet

status.nodeAllocatableResourceClaimStatuses, a []NodeAllocatableResourceClaimStatus carrying resourceClaimName, containers and resources: field, type.

That is the whole surface. No new resources, no new API versions, and no change to any field that exists today.

Both fields are cleared on create and update while the gate is off, so nothing extra is served on Default or OKD: dropDisabledDRANodeAllocatableResourcesFields for ResourceSlice and dropPodNodeAllocatableResourceStatus for pod status. The only sets this PR touches are TechPreviewNoUpgrade and DevPreviewNoUpgrade.

On precedent, this follows the same path we took with DRAPartitionableDevices, registered for TechPreview and DevPreview while it was still alpha upstream in #2694 (which you approved), then removed again in #2828 once it arrived as beta on by default with the 1.36 rebase. DynamicResourceAllocation itself went the same way earlier, TechPreview while alpha in #1411 and promoted to Default in #2498.

The reasoning is the same one here. The driver partners want to validate this on OpenShift before it reaches beta (the NVIDIA GPU and Google TPU driver PRs linked in the description), and the NoUpgrade sets let them do that with no support or upgrade commitment attached. The registration retires itself at graduation, just as DRAPartitionableDevices did.

Happy to cover anything else you'd like on this.

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

Labels

do-not-merge/holdIndicates that a PR should not merge because someone has issued a /hold command.jira/valid-referenceIndicates that this PR references a valid Jira ticket of any type.lgtmIndicates that a PR is ready to be merged.size/MDenotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@harche@openshift-ci-robot@haircommander@JoelSpeed