Skip to content

fix(kubevirt): update KubeVirt to v1.8.4 - #2940

Merged
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
feat/bump-kubevirt-1.8.4
Jun 25, 2026
Merged

Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
feat/bump-kubevirt-1.8.4

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Jun 17, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

Updates kubevirt-operator from v1.8.2 to v1.8.4. This backports the VMI checksum status-field validation fix (uint32 range) that Kubernetes 1.36 requires — without it, strict CRD numeric-format validation leaves VMIs stuck in Scheduled. The release also carries assorted bug fixes and CVE remediations. The v1.7.x line is skipped (live-migration regression, kubevirt/kubevirt#16386).

The KubeVirt custom resource is unchanged — upstream ships a byte-identical CR across these versions.

Verified on a dev cluster: all virt-* components roll out to v1.8.4 and become ready.

Closes #2769

Screenshots

Not applicable — no UI changes.

Release note

fix(kubevirt): update KubeVirt to v1.8.4; fixes VMIs stuck in Scheduled on Kubernetes 1.36 (strict CRD numeric-format validation of VMI checksum status fields)

Summary by CodeRabbit

  • Chores
    • Updated the KubeVirt operator version from v1.8.2 to v1.8.4, including the corresponding deployment configuration and operator image/environment version bumps.
    • Adjusted the operator update process to download the manifest using v1.8.4 while skipping v1.7.x.

@github-actions github-actions Bot added size/L This PR changes 100-499 lines, ignoring generated files area/virtualization Issues or PRs related to virtualization (kubevirt, cdi, vmi, vm-import) kind/bug Categorizes issue or PR as related to a bug labels Jun 17, 2026
@coderabbitai

coderabbitai Bot commented Jun 17, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 813373db-7c42-47e0-bab6-a63ecfb8a989

📥 Commits

Reviewing files that changed from the base of the PR and between a9496ec and 192246e.

📒 Files selected for processing (2)
  • packages/system/kubevirt-operator/Makefile
  • packages/system/kubevirt-operator/templates/kubevirt-operator.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/system/kubevirt-operator/Makefile
  • packages/system/kubevirt-operator/templates/kubevirt-operator.yaml

📝 Walkthrough

Walkthrough

The kubevirt-operator release is bumped from v1.8.2 to v1.8.4. The Makefile updates the release download setting and notes that v1.7.x is skipped, and the rendered manifest updates the operator image and version fields to v1.8.4.

Changes

kubevirt-operator v1.8.4 Bump

Layer / File(s) Summary
kubevirt-operator bump to v1.8.4
packages/system/kubevirt-operator/Makefile, packages/system/kubevirt-operator/templates/kubevirt-operator.yaml
Makefile RELEASE updated from v1.8.2 to v1.8.4 with a note skipping v1.7.x; rendered manifest updates VIRT_OPERATOR_IMAGE, KUBEVIRT_VERSION, and the container image from v1.8.2 to v1.8.4.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐇 Hop, hop, the version grows,
From v1.8.2 to .4 it goes!
We skip the .7.x with a hop and a blink,
The operator’s tag is fresh as a drink.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: bumping KubeVirt to v1.8.4.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/bump-kubevirt-1.8.4

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.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request performs a routine maintenance update of the KubeVirt stack. By bumping KubeVirt to v1.8.4 and CDI to v1.65.0, the stack gains critical bug fixes, including a necessary fix for VMI scheduling on Kubernetes 1.36. Additionally, the build process for the CDI operator has been improved to ensure better reproducibility and easier management of custom configuration patches.

Highlights

  • KubeVirt Upgrade: Updated KubeVirt operator from v1.8.2 to v1.8.4 to address VMI checksum validation issues on Kubernetes 1.36.
  • CDI Upgrade: Updated Containerized Data Importer (CDI) from v1.64.0 to v1.65.0.
  • Build Reproducibility: Pinned CDI version explicitly in the Makefile and added support for applying custom tolerations via patch files.
New Features

🧠 You can now enable Memory (public preview) to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: **/*.diff (2)
    • packages/system/kubevirt-cdi-operator/patches/startupProbe.diff
    • packages/system/kubevirt-cdi-operator/patches/tolerations.diff
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment Gemini (@gemini-code-assist) Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on Gemini (@gemini-code-assist) comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

@myasnikovdaniil

Copy link
Copy Markdown
Contributor

Aleksei Sviridkin (@lexfrei) — I dug into this PR's red E2E (the vminstance / "Create a VM Disk" step) and it's not a flake: it's a real regression introduced by the CDI v1.64.0 → v1.65.0 bump in this PR.

Symptom. The vm-disk-test DataVolume (HTTP-importing the Ubuntu Noble cloud image into a 5Gi disk) reaches ~98% and then fails deterministically with Conversion to Raw failed … qemu-img execution failed: exit status 1, retried 4×. Ruled out the usual suspects: it's not the CNI/cilium "IP already in use" flake (the importer pod networked fine), and it's not an undersized target (Noble's qcow2 virtual size is 3.5 GiB, well under the 5Gi disk).

Isolated A/B. I ran the real cdi-importer binary for both versions side-by-side in identical pods — same node, same storage class, same 5Gi block target + scratch volume, same IMPORTER_* env, same source image — with only the image tag differing:

  • cdi-importer:v1.64.0 → ✅ Succeeded ("Import Complete", 100%)
  • cdi-importer:v1.65.0 → ❌ Failed (Conversion to Raw failed: qemu-img execution failed)

Likely cause. The two versions take different conversion paths. v1.64.0 stages the source to scratch first, then qemu-img convert -O raw /scratch/tmpimage <block-device> (completes). v1.65.0 uses ConvertToRawStream — streaming the qemu-img conversion directly from the nbdkit-curl HTTP source with no scratch staging — and that streaming path is what fails here (qemu-img exits 1 near the end).

Suggestion. Hold or split this bump. The KubeVirt v1.8.4 part may be landable on its own, but CDI v1.65.0 looks broken for HTTP imports as configured here — so either pin CDI at v1.64.0 for now, or wait for an upstream CDI fix to the stream-convert path before bumping. Happy to help bisect the CDI commit that introduced stream-convert, or file an upstream issue, if that's useful.

@lexfrei Aleksei Sviridkin (lexfrei) changed the title fix(kubevirt): update KubeVirt to v1.8.4 and CDI to v1.65.0 fix(kubevirt): update KubeVirt to v1.8.4 Jun 22, 2026
@github-actions github-actions Bot added size/S This PR changes 10-29 lines, ignoring generated files and removed size/L This PR changes 100-499 lines, ignoring generated files labels Jun 22, 2026
@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as draft June 23, 2026 11:34
@lexfrei

Copy link
Copy Markdown
Contributor Author

myasnikovdaniil thanks — clean A/B repro. I've dropped the CDI bump from this PR; it now lands KubeVirt v1.8.4 alone, with CDI staying pinned at v1.64.0. The KubeVirt bump stands on its own merit: v1.8.4 is the first 1.8.x release carrying the checksum uint32-range fix (release-1.8 backport #18055, merged after v1.8.3 shipped), which clears the Checked value must be of type integer with format int32 validation error that left VMIs stuck in Scheduled on k8s 1.36. The CDI v1.65.0 stream-convert regression is worth tracking separately so it doesn't block this fix.

@lexfrei
Aleksei Sviridkin (lexfrei) marked this pull request as ready for review June 23, 2026 11:52
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

Refresh the vendored virt-operator manifest from v1.8.2 to v1.8.4. The
release backports validation of the VMI checksum status fields as a
uint32 range, required on Kubernetes 1.36 where strict CRD numeric
format validation otherwise leaves VMIs stuck in Scheduled. Remaining
changes are bug fixes and CVE remediations; the embedded CRDs and RBAC
are unchanged, so only the operator image tag moves.

Assisted-By: Claude <[email protected]>
Signed-off-by: Aleksei Sviridkin <[email protected]>
@lexfrei
Aleksei Sviridkin (lexfrei) merged commit 8e133a7 into main Jun 25, 2026
12 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the feat/bump-kubevirt-1.8.4 branch June 25, 2026 09:29
@lexfrei Aleksei Sviridkin (lexfrei) added the kind/backport Categorizes issue or PR as requiring a backport to the current release line label Jul 14, 2026
@github-actions

Copy link
Copy Markdown

Successfully created backport PR for release-1.5:

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

Labels

area/virtualization Issues or PRs related to virtualization (kubevirt, cdi, vmi, vm-import) kind/backport Categorizes issue or PR as requiring a backport to the current release line kind/bug Categorizes issue or PR as related to a bug size/S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

KubeVirt 1.8.2 VMIs stuck in Scheduled on Kubernetes 1.36 hosts (checksum int32 CRD validation)

2 participants