Skip to content

CNV-83205: enable RebootPolicy feature gate in interop deploy-cnv#77801

Open
lukas-bednar wants to merge 2 commits intoopenshift:mainfrom
lukas-bednar:cnv-83205-interop-reboot-policy-gate
Open

CNV-83205: enable RebootPolicy feature gate in interop deploy-cnv#77801
lukas-bednar wants to merge 2 commits intoopenshift:mainfrom
lukas-bednar:cnv-83205-interop-reboot-policy-gate

Conversation

@lukas-bednar
Copy link
Copy Markdown
Contributor

@lukas-bednar lukas-bednar commented Apr 14, 2026

CNV-83205

Interop periodic interop-tests-cnv-tests-e2e-deploy was failing with:
RebootPolicy is specified but the RebootPolicy feature gate is not enabled.

Change

After HyperConverged is first Available, annotate it with the same kubevirt.kubevirt.io/jsonpatch used in cnv-qe-automation (append RebootPolicy to KubeVirt developerConfiguration.featureGates), then wait for Available again.

File

  • ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh

Summary by CodeRabbit

  • New Features

    • KubeVirt RebootPolicy feature gate is now enabled during interop test deployments.
  • Test Updates

    • Added validation step to confirm the system reaches Available state after deployment configuration changes, ensuring stability before proceeding with tests.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Apr 14, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Apr 14, 2026

@lukas-bednar: This pull request references CNV-83205 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 bug to target the "5.0.0" version, but no target version was set.

Details

In response to this:

CNV-83205

Interop periodic interop-tests-cnv-tests-e2e-deploy was failing with:
RebootPolicy is specified but the RebootPolicy feature gate is not enabled.

Change

After HyperConverged is first Available, annotate it with the same kubevirt.kubevirt.io/jsonpatch used in cnv-qe-automation (append RebootPolicy to KubeVirt developerConfiguration.featureGates), then wait for Available again.

File

  • ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh

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-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Apr 14, 2026

@lukas-bednar: This pull request references CNV-83205 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 bug to target the "5.0.0" version, but no target version was set.

Details

In response to this:

CNV-83205

Interop periodic interop-tests-cnv-tests-e2e-deploy was failing with:
RebootPolicy is specified but the RebootPolicy feature gate is not enabled.

Change

After HyperConverged is first Available, annotate it with the same kubevirt.kubevirt.io/jsonpatch used in cnv-qe-automation (append RebootPolicy to KubeVirt developerConfiguration.featureGates), then wait for Available again.

File

  • ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh

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 dshchedr and sg-rh April 14, 2026 18:18
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 14, 2026

Warning

Rate limit exceeded

@lukas-bednar has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 51 minutes and 43 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 51 minutes and 43 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 07638ce7-7994-43c3-85d5-9ebb7e00f5da

📥 Commits

Reviewing files that changed from the base of the PR and between 3e8fb1c and e89e953.

📒 Files selected for processing (1)
  • ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh

Walkthrough

Adds a post-deployment configuration step to enable the KubeVirt RebootPolicy feature gate by patching the hyperconverged/kubevirt-hyperconverged resource. Includes an oc wait command to ensure the resource reaches Available state after the patch is applied.

Changes

Cohort / File(s) Summary
KubeVirt Feature Gate Configuration
ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh
Adds JSON patch command to enable RebootPolicy feature gate on the HyperConverged resource and waits for the resource to become available after the patch is applied.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 10
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: enabling the RebootPolicy feature gate in the interop deploy-cnv configuration, which directly matches the file modification and objective.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed The custom check for stable and deterministic Ginkgo test names is not applicable to this pull request. The modified file is a bash shell script containing infrastructure deployment commands, not a Go test file with Ginkgo test definitions.
Test Structure And Quality ✅ Passed This custom check assesses Ginkgo test code, but the pull request modifies a shell script. The check criteria are specific to Go test files and do not apply to shell scripts.
Microshift Test Compatibility ✅ Passed PR modifies only a bash deployment script, not Ginkgo e2e tests, so MicroShift API compatibility check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR modifies only shell script for KubeVirt deployment; no Ginkgo e2e tests added or modified, so SNO compatibility check is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed The PR modifies a CI/CD automation shell script that enables a KubeVirt feature gate via resource annotation without introducing any pod anti-affinity rules, topology spread constraints, node selectors, or other scheduling constraints that would assume a specific cluster topology.
Ote Binary Stdout Contract ✅ Passed This custom check is not applicable to the provided pull request. The PR modifies a shell script used for CI/CD deployment and setup, not an OTE test binary.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed Modified file is a shell script for KubeVirt deployment, not Go test code. No Ginkgo test patterns (It, Describe, Context, etc.) found.

✏️ 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 and usage tips.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 14, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: lukas-bednar
Once this PR has been reviewed and has the lgtm label, please assign rabin-io 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-ci-robot
Copy link
Copy Markdown
Contributor

openshift-ci-robot commented Apr 14, 2026

@lukas-bednar: This pull request references CNV-83205 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 bug to target the "5.0.0" version, but no target version was set.

Details

In response to this:

CNV-83205

Interop periodic interop-tests-cnv-tests-e2e-deploy was failing with:
RebootPolicy is specified but the RebootPolicy feature gate is not enabled.

Change

After HyperConverged is first Available, annotate it with the same kubevirt.kubevirt.io/jsonpatch used in cnv-qe-automation (append RebootPolicy to KubeVirt developerConfiguration.featureGates), then wait for Available again.

File

  • ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh

Summary by CodeRabbit

  • New Features

  • KubeVirt RebootPolicy feature gate is now enabled during interop test deployments.

  • Test Updates

  • Added validation step to confirm the system reaches Available state after deployment configuration changes, ensuring stability before proceeding with tests.

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.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Could we add that feature gate here?

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh (1)

79-79: Use the namespace variable here for consistency.

At Line 79, hardcoding openshift-cnv diverges from the variable-based usage on Line 73.

Small consistency tweak
-oc wait hyperconverged -n openshift-cnv kubevirt-hyperconverged --for=condition=Available --timeout=15m
+oc wait hyperconverged -n "${CNV_INSTALL_NAMESPACE}" kubevirt-hyperconverged --for=condition=Available --timeout=15m
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh`
at line 79, Replace the hardcoded namespace in the oc wait command by using the
existing namespace variable referenced earlier in the script (the same variable
used on Line 73) instead of "openshift-cnv"; update the oc wait hyperconverged
-n openshift-cnv kubevirt-hyperconverged --for=condition=Available --timeout=15m
invocation to use that variable (e.g., -n "$<namespace_variable>") so it stays
consistent with other commands in the script.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh`:
- Line 79: Replace the single-line "oc wait hyperconverged -n openshift-cnv
kubevirt-hyperconverged --for=condition=Available --timeout=15m" with an
explicit reconciliation poll for the kubevirt-hyperconverged resource in
${CNV_INSTALL_NAMESPACE}: after you patch the RebootPolicy, loop (with a
timeout) calling "oc get hyperconverged -n ${CNV_INSTALL_NAMESPACE}
kubevirt-hyperconverged -o jsonpath=..." and wait until
.status.observedGeneration is >= .metadata.generation (ensuring the patch was
reconciled), then call the existing wait for condition=Available; also replace
the hardcoded namespace openshift-cnv with ${CNV_INSTALL_NAMESPACE} so both the
reconciliation check and the subsequent oc wait operate against the same
variable namespace.

---

Nitpick comments:
In
`@ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh`:
- Line 79: Replace the hardcoded namespace in the oc wait command by using the
existing namespace variable referenced earlier in the script (the same variable
used on Line 73) instead of "openshift-cnv"; update the oc wait hyperconverged
-n openshift-cnv kubevirt-hyperconverged --for=condition=Available --timeout=15m
invocation to use that variable (e.g., -n "$<namespace_variable>") so it stays
consistent with other commands in the script.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 8cfa210c-d0fd-4e69-a9df-690a6a2a4841

📥 Commits

Reviewing files that changed from the base of the PR and between 508c08f and 3e8fb1c.

📒 Files selected for processing (1)
  • ci-operator/step-registry/interop-tests/deploy-cnv/interop-tests-deploy-cnv-commands.sh

@openshift-ci openshift-ci bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 14, 2026
interop-tests-cnv-tests-e2e-deploy fails when reboot policy specs run without
the KubeVirt RebootPolicy feature gate. Mirror cnv-qe-automation: annotate
HyperConverged with kubevirt.kubevirt.io/jsonpatch to append RebootPolicy to
developerConfiguration.featureGates, then wait for Available.

Made-with: Cursor
…patch

- Use CNV_INSTALL_NAMESPACE and HCO_NAME for HyperConverged create, annotate, and oc wait.
- After RebootPolicy jsonpatch, poll until status.observedGeneration >= metadata.generation
  so Available does not return before the annotation is reconciled.

CNV-83205

Made-with: Cursor
@lukas-bednar lukas-bednar force-pushed the cnv-83205-interop-reboot-policy-gate branch from e89e953 to 5ae6c20 Compare April 14, 2026 18:37
@openshift-ci openshift-ci bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 14, 2026
@openshift-merge-bot openshift-merge-bot bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Apr 14, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@lukas-bednar: no rehearsable tests are affected by this change

Note: If this PR includes changes to step registry files (ci-operator/step-registry/) and you expected jobs to be found, try rebasing your PR onto the base branch. This helps pj-rehearse accurately detect changes when the base branch has moved forward.

@openshift-merge-bot openshift-merge-bot bot removed the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Apr 14, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@lukas-bednar: 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-cnv-ocp-virt-validation-checkup-main-e2e-aws openshift-cnv/ocp-virt-validation-checkup presubmit Registry content changed
pull-ci-openshift-cnv-ocp-virt-validation-checkup-release-4.21-e2e-aws openshift-cnv/ocp-virt-validation-checkup presubmit Registry content changed
pull-ci-openshift-cnv-ocp-virt-validation-checkup-release-4.20-e2e-aws openshift-cnv/ocp-virt-validation-checkup presubmit Registry content changed
pull-ci-openshift-cnv-ocp-virt-validation-checkup-release-4.19-e2e-aws openshift-cnv/ocp-virt-validation-checkup presubmit Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-oadp-1.4-oadp1.4-ocp4.18-lp-interop-oadp-interop-aws-fips N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.21-nightly--cnv-4.21-stable--aws-kubevirt-outage N/A periodic Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-oadp-1.5-oadp1.5-ocp4.20-lp-interop-oadp-interop-aws N/A periodic Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-oadp-1.5-oadp1.5-ocp4.20-lp-interop-oadp-interop-aws-fips N/A periodic Registry content changed
periodic-ci-RedHatQE-interop-testing-master-cnv-odf-ocp4.20-konflux-cnv-odf-smoke-tests-aws-ipi-ocp420 N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.21-nightly--cnv-4.21-stable--aws-krkn-hub-node-tests N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.21-nightly--cnv-4.21-stable--aws-krkn-hub-tests N/A periodic Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-oadp-1.4-oadp1.4-ocp4.18-lp-interop-oadp-interop-aws N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.22-nightly--cnv-4.22-stable--aws-krkn-hub-node-tests N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.22-nightly--cnv-4.22-stable--aws-kubevirt-outage N/A periodic Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.4-ocp4.17-lp-interop-oadp-interop-aws N/A periodic Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-main-oadp1.4-ocp4.17-lp-interop-oadp-interop-aws-fips N/A periodic Registry content changed
periodic-ci-oadp-qe-oadp-qe-automation-oadp-1.5-oadp1.5-ocp-4.21-lp-interop-cr-oadp-interop-aws N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.22-nightly--cnv-4.22-stable--aws-krkn-hub-tests N/A periodic Registry content changed
periodic-ci-redhat-chaos-lp-chaos-main-ocp4.21-nightly--cnv-4.21-stable-cnvcases--aws-lp-chaos--cnv--node-outage 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.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci bot commented Apr 14, 2026

@lukas-bednar: 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.

@openshift-merge-bot openshift-merge-bot bot added the rehearsals-ack Signifies that rehearsal jobs have been acknowledged label Apr 14, 2026
@openshift-merge-bot
Copy link
Copy Markdown
Contributor

[REHEARSALNOTIFIER]
@lukas-bednar: no rehearsable tests are affected by this change

Note: If this PR includes changes to step registry files (ci-operator/step-registry/) and you expected jobs to be found, try rebasing your PR onto the base branch. This helps pj-rehearse accurately detect changes when the base branch has moved forward.

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.

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

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. rehearsals-ack Signifies that rehearsal jobs have been acknowledged

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants