Skip to content

Enable DRA Partitionable Devices support in kueue-operator CI#80886

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
PannagaRao:kueue-dra-pd-support
Jun 23, 2026
Merged

Enable DRA Partitionable Devices support in kueue-operator CI#80886
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
PannagaRao:kueue-dra-pd-support

Conversation

@PannagaRao

@PannagaRao PannagaRao commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Summary by CodeRabbit

This PR enables Dynamic Resource Allocation (DRA) Partitionable Devices support in the kueue-operator Continuous Integration pipeline (OpenShift CI configuration), expanding the end-to-end test coverage for DRA GPU partitioning scenarios.

Key changes:

  1. CI job configuration updates (main + release-1.4)
    Updated the test-e2e-ci-build-upstream-4-21 job in both openshift-kueue-operator-main.yaml and openshift-kueue-operator-release-1.4.yaml to:

    • set DRA_GPU_PARTITIONS: "4" in the job env
    • adjust E2E_TARGET_FOLDERS to run with sequential and to target both dra/whole-device and dra/counter test suites (replacing the prior single dra target selection)
  2. DRA example driver upgrade + conditional GPU partition configuration
    In the ci-operator/step-registry/dra-example-driver install step:

    • default DRA_EXAMPLE_DRIVER_VERSION is bumped to v0.3.0
    • a new optional DRA_GPU_PARTITIONS env var is introduced; when set, the Helm install/upgrade command conditionally applies --set gpu.partitions=<value>
  3. Extended DRA feature gate coverage
    Updated the kueue-operator-test-e2e-dra-enable-feature-gate script to enable both DRAExtendedResource and DRAPartitionableDevices (previously only DRAExtendedResource), improving feature coverage for DRA Partitionable Devices tests.

Overall, these updates allow OpenShift CI to reliably run DRA end-to-end tests that exercise both whole-device and counter-based partitionable device behaviors, including GPU partitioning into the configured number of logical devices.

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

Two CI job configs (main and release-1.4) gain a DRA_GPU_PARTITIONS: "4" env var for the test-e2e-ci-build-upstream-4-21 job, along with expanded e2e target folders. The dra-example-driver install step bumps its default version to v0.3.0, declares the new parameter, and conditionally passes --set gpu.partitions=<value> to Helm. The feature-gate enablement script is updated to patch both DRAExtendedResource and DRAPartitionableDevices into the cluster's customNoUpgrade set.

Changes

DRA Partitionable Devices GPU partition support

Layer / File(s) Summary
Enable DRA Partitionable Devices feature gate
ci-operator/step-registry/kueue-operator/test/e2e/dra/enable-feature-gate/kueue-operator-test-e2e-dra-enable-feature-gate-commands.sh
Patches featuregates cluster to enable both DRAExtendedResource and DRAPartitionableDevices in the customNoUpgrade set, and updates log messages to reflect both enabled gates.
DRA driver install: version bump and partition configuration
ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-ref.yaml, ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-commands.sh
Bumps DRA_EXAMPLE_DRIVER_VERSION default to v0.3.0, adds DRA_GPU_PARTITIONS env var declaration with docs, and conditionally injects --set gpu.partitions=${DRA_GPU_PARTITIONS} into the helm upgrade --install invocation.
CI job configs: inject DRA_GPU_PARTITIONS and update test targets
ci-operator/config/openshift/kueue-operator/openshift-kueue-operator-main.yaml, ci-operator/config/openshift/kueue-operator/openshift-kueue-operator-release-1.4.yaml
Sets DRA_GPU_PARTITIONS: "4" env var and updates E2E_TARGET_FOLDERS to include sequential, dra/whole-device, and dra/counter targets in the test-e2e-ci-build-upstream-4-21 job for both configs.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Suggested labels

rehearsals-ack

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and specifically describes the main change: enabling DRA Partitionable Devices support in kueue-operator CI.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed No Ginkgo test definitions found in the PR. The PR adds CI configuration files and shell scripts, not Ginkgo tests, so the check is not applicable.
Test Structure And Quality ✅ Passed PR does not contain Ginkgo test code; it only modifies CI configuration YAML files and shell scripts. The check is not applicable to this PR's scope.
Microshift Test Compatibility ✅ Passed PR contains only CI configuration and infrastructure setup scripts; no new Ginkgo e2e tests are being added, so the check does not apply.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests were added in this PR. Changes are CI configuration and infrastructure files only (YAML configs, shell scripts). Check applies only when new test code is added.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only CI test infrastructure (job configs, install scripts, feature gate enablement). No deployment manifests, pod specs, or topology-aware scheduling constraints are introduced.
Ote Binary Stdout Contract ✅ Passed The PR modifies only CI configuration YAML files and Bash shell scripts for CI pipeline setup, not OTE test binary code. The OTE Binary Stdout Contract check applies to Go process-level code (main,...
Ipv6 And Disconnected Network Test Compatibility ✅ Passed This PR does not add any new Ginkgo e2e tests; it only modifies CI configuration (YAML) and setup scripts (bash). The check is not applicable.
No-Weak-Crypto ✅ Passed No weak cryptographic algorithms (MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB), custom crypto implementations, or insecure token comparisons found. SHA256 checksum verification is appropriate.
Container-Privileges ✅ Passed No Kubernetes/container manifests with privileged configurations found. PR contains only CI config, shell scripts, and CI step definitions. Privileged settings in Helm installation script have expl...
No-Sensitive-Data-In-Logs ✅ Passed No sensitive data (passwords, tokens, API keys, PII, session IDs, or credentials) is exposed in logs. Only non-sensitive deployment information is logged: version numbers, namespace names, numeric...

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 23, 2026
@openshift-ci openshift-ci Bot requested review from MaysaMacedo and cpmeadors June 23, 2026 06:12
@PannagaRao

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-kueue-operator-main-test-e2e-ci-build-upstream-4-21

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@PannagaRao: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@PannagaRao

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-origin-main-e2e-aws-ovn-dra-example

@PannagaRao

Copy link
Copy Markdown
Contributor Author

/pj-rehearse periodic-ci-openshift-kueue-operator-main-test-e2e-dra-gpu-4-21

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@PannagaRao: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

1 similar comment
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@PannagaRao: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@kannon92

Copy link
Copy Markdown
Contributor

/lgtm
/approve

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 23, 2026
@PannagaRao

Copy link
Copy Markdown
Contributor Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 23, 2026
Signed-off-by: Pannaga Rao Bhoja Ramamanohara
@PannagaRao PannagaRao force-pushed the kueue-dra-pd-support branch from 1b27998 to 1339d4c Compare June 23, 2026 17:28
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 23, 2026
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@PannagaRao: the pj-rehearse plugin accommodates running rehearsal tests for the changes in this PR. Expand 'Interacting with pj-rehearse' for usage details. The following rehearsable tests have been affected by this change:

Test name Repo Type Reason
pull-ci-openshift-origin-main-e2e-aws-ovn-dra-example openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-5.1-e2e-aws-ovn-dra-example openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-5.0-e2e-aws-ovn-dra-example openshift/origin presubmit Registry content changed
pull-ci-openshift-origin-release-4.23-e2e-aws-ovn-dra-example openshift/origin presubmit Registry content changed
pull-ci-openshift-kueue-operator-release-1.4-test-e2e-ci-build-upstream-4-21 openshift/kueue-operator presubmit Ci-operator config changed
pull-ci-openshift-kueue-operator-main-test-e2e-ci-build-upstream-4-21 openshift/kueue-operator presubmit Ci-operator config changed
periodic-ci-openshift-kueue-operator-main-test-e2e-dra-gpu-4-21 N/A periodic Registry content changed
periodic-ci-openshift-kueue-operator-release-1.4-test-e2e-dra-gpu-4-21 N/A periodic Registry content changed
Interacting with pj-rehearse

Comment: /pj-rehearse to run up to 5 rehearsals
Comment: /pj-rehearse skip to opt-out of rehearsals
Comment: /pj-rehearse {test-name}, with each test separated by a space, to run one or more specific rehearsals
Comment: /pj-rehearse more to run up to 10 rehearsals
Comment: /pj-rehearse max to run up to 25 rehearsals
Comment: /pj-rehearse auto-ack to run up to 5 rehearsals, and add the rehearsals-ack label on success
Comment: /pj-rehearse list to get an up-to-date list of affected jobs
Comment: /pj-rehearse abort to abort all active rehearsals
Comment: /pj-rehearse network-access-allowed to allow rehearsals of tests that have the restrict_network_access field set to false. This must be executed by an openshift org member who is not the PR author

Once you are satisfied with the results of the rehearsals, comment: /pj-rehearse ack to unblock merge. When the rehearsals-ack label is present on your PR, merge will no longer be blocked by rehearsals.
If you would like the rehearsals-ack label removed, comment: /pj-rehearse reject to re-block merging.

@PannagaRao

Copy link
Copy Markdown
Contributor Author

/pj-rehearse pull-ci-openshift-kueue-operator-main-test-e2e-ci-build-upstream-4-21

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@PannagaRao: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-commands.sh (1)

73-84: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider using array syntax for helm arguments.

The unquoted expansion of ${GPU_PARTITION_ARGS} on line 84 relies on word splitting to pass --set and gpu.partitions=N as separate arguments. While this works, array syntax is more robust and idiomatic:

♻️ Refactor to use array syntax
-GPU_PARTITION_ARGS=""
+GPU_PARTITION_ARGS=()
 if [ -n "${DRA_GPU_PARTITIONS:-}" ]; then
   echo "GPU partitions: ${DRA_GPU_PARTITIONS}"
-  GPU_PARTITION_ARGS="--set gpu.partitions=${DRA_GPU_PARTITIONS}"
+  GPU_PARTITION_ARGS=(--set "gpu.partitions=${DRA_GPU_PARTITIONS}")
 fi

 helm upgrade --install \
   --namespace "${DRA_EXAMPLE_DRIVER_NAMESPACE}" \
   dra-example-driver \
   "${DRA_CHART_DIR}" \
   --set kubeletPlugin.containers.plugin.securityContext.privileged=true \
-  ${GPU_PARTITION_ARGS} \
+  "${GPU_PARTITION_ARGS[@]}" \
   --wait \
   --timeout 10m

This approach:

  • Eliminates reliance on word splitting
  • Protects against unexpected characters in DRA_GPU_PARTITIONS
  • Makes the intent clearer to maintainers
  • Resolves the Shellcheck SC2086 warning
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-commands.sh`
around lines 73 - 84, The GPU_PARTITION_ARGS variable currently relies on
unquoted word splitting when passed to the helm upgrade command, which is
fragile and generates Shellcheck warnings. Refactor this to use bash array
syntax: declare GPU_PARTITION_ARGS as an array (initialize empty), conditionally
append the --set flag and its value to the array when the condition check for
DRA_GPU_PARTITIONS passes, and then expand the array in the helm upgrade command
using proper array syntax (with double quotes and `@-expansion`) to safely pass
the arguments without relying on word splitting.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-commands.sh`:
- Around line 73-84: The GPU_PARTITION_ARGS variable currently relies on
unquoted word splitting when passed to the helm upgrade command, which is
fragile and generates Shellcheck warnings. Refactor this to use bash array
syntax: declare GPU_PARTITION_ARGS as an array (initialize empty), conditionally
append the --set flag and its value to the array when the condition check for
DRA_GPU_PARTITIONS passes, and then expand the array in the helm upgrade command
using proper array syntax (with double quotes and `@-expansion`) to safely pass
the arguments without relying on word splitting.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 82a746d6-112b-43aa-81bd-d18afab1d6f6

📥 Commits

Reviewing files that changed from the base of the PR and between 1b27998 and 1339d4c.

📒 Files selected for processing (5)
  • ci-operator/config/openshift/kueue-operator/openshift-kueue-operator-main.yaml
  • ci-operator/config/openshift/kueue-operator/openshift-kueue-operator-release-1.4.yaml
  • ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-commands.sh
  • ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-ref.yaml
  • ci-operator/step-registry/kueue-operator/test/e2e/dra/enable-feature-gate/kueue-operator-test-e2e-dra-enable-feature-gate-commands.sh
✅ Files skipped from review due to trivial changes (1)
  • ci-operator/step-registry/kueue-operator/test/e2e/dra/enable-feature-gate/kueue-operator-test-e2e-dra-enable-feature-gate-commands.sh
🚧 Files skipped from review as they are similar to previous changes (1)
  • ci-operator/step-registry/dra-example-driver/install/dra-example-driver-install-ref.yaml

@PannagaRao

PannagaRao commented Jun 23, 2026

Copy link
Copy Markdown
Contributor Author

This PR enables the DRAPartitionableDevices feature gate and adds dra/whole-device and dra/counter to the upstream e2e target folders. Rehearsals for dra/counter will fail because the test code doesn't exist
yet in kueue-operator-src. Requesting merge on this first so the remaining PRs can be merged and verified in order:

  1. This PR (release-side changes)
  2. Add counter sources to default Kueue CR for upstream PD e2e tests kueue-operator#2069 — adds Sources configuration for dra/counter
  3. NO-JIRA: Sync kueue submodule to latest main kueue-operator#2064 — submodule bump that brings in the actual dra/counter and dra/whole-device test code

/assign @kannon92 @sohankunkerkar

@kannon92 kannon92 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

/lgtm
/approve

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 23, 2026
@openshift-ci

openshift-ci Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: kannon92, PannagaRao

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

The pull request process is described 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

@kannon92

Copy link
Copy Markdown
Contributor

/pj-rehearse ack

@openshift-merge-bot

Copy link
Copy Markdown
Contributor

@kannon92: now processing your pj-rehearse request. Please allow up to 10 minutes for jobs to trigger or cancel.

@openshift-merge-bot openshift-merge-bot Bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Jun 23, 2026
@PannagaRao

Copy link
Copy Markdown
Contributor Author

/hold

@PannagaRao

Copy link
Copy Markdown
Contributor Author

/hold cancel

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 23, 2026
@openshift-ci

openshift-ci Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

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

Test name Commit Details Required Rerun command
ci/rehearse/openshift/kueue-operator/main/test-e2e-ci-build-upstream-4-21 1339d4c link unknown /pj-rehearse pull-ci-openshift-kueue-operator-main-test-e2e-ci-build-upstream-4-21
ci/rehearse/periodic-ci-openshift-kueue-operator-main-test-e2e-dra-gpu-4-21 1b27998 link unknown /pj-rehearse periodic-ci-openshift-kueue-operator-main-test-e2e-dra-gpu-4-21

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.

@openshift-merge-bot openshift-merge-bot Bot merged commit 33dbcce into openshift:main Jun 23, 2026
16 of 17 checks passed
kasturinarra pushed a commit to kasturinarra/release that referenced this pull request Jun 26, 2026
…ift#80886)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara
Co-authored-by: Pannaga Rao Bhoja Ramamanohara <pbhojara@pbhojara-thinkpadp16vgen1.rht.csb>
krisnababu pushed a commit to oharan2/release that referenced this pull request Jul 3, 2026
…ift#80886)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara
Co-authored-by: Pannaga Rao Bhoja Ramamanohara <pbhojara@pbhojara-thinkpadp16vgen1.rht.csb>
andrej1991 pushed a commit to andrej1991/release that referenced this pull request Jul 6, 2026
…ift#80886)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara
Co-authored-by: Pannaga Rao Bhoja Ramamanohara <pbhojara@pbhojara-thinkpadp16vgen1.rht.csb>
TimurMP pushed a commit to TimurMP/release that referenced this pull request Jul 8, 2026
…ift#80886)

Signed-off-by: Pannaga Rao Bhoja Ramamanohara

Signed-off-by: Pannaga Rao Bhoja Ramamanohara
Co-authored-by: Pannaga Rao Bhoja Ramamanohara <pbhojara@pbhojara-thinkpadp16vgen1.rht.csb>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants