Skip to content

Backport: fix(dra): drop redundant /sys hostPath mount breaking container start#2661

Merged
deckhouse-BOaTswain merged 1 commit into
release-1.9from
cherry-pick-release-1.9-08630242661efb978c6c125f65fc2405725a89ed
Jul 14, 2026
Merged

Backport: fix(dra): drop redundant /sys hostPath mount breaking container start#2661
deckhouse-BOaTswain merged 1 commit into
release-1.9from
cherry-pick-release-1.9-08630242661efb978c6c125f65fc2405725a89ed

Conversation

@deckhouse-BOaTswain

Copy link
Copy Markdown
Contributor

Description

The virtualization-dra USB DaemonSet pods never start — they stay in CrashLoopBackOff on every node, so USB device passthrough is unavailable. The main container is privileged and runs with a read-only root filesystem while also bind-mounting the host /sys. Under containerd this combination makes the runtime fail to set up the /sys/fs/cgroup mount on the read-only rootfs, and the container never starts.

A privileged container already gets a read-write /sys from the runtime, so the explicit /sys mount is redundant. It is removed together with its volume and the now-dead /sys entry in the SecurityPolicy host-path allow-list.

Why do we need it, and what problem does it solve?

Without this, the DRA component cannot run at all, and USB devices cannot be passed through to VMs. Verified on a cluster: a privileged pod with a read-only rootfs and an explicit /sys mount crash-loops with the cgroup mount error, while the same pod without that mount starts fine and still has read-write access to /sys/bus/usb.

What is the expected result?

virtualization-dra pods reach Running on all nodes (no CrashLoopBackOff), and USB device passthrough works.

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: vm
type: fix
summary: "USB device passthrough pods no longer fail to start on nodes with a read-only container root filesystem."

…#2638)

Description
The virtualization-dra USB DaemonSet pods never start — they stay in CrashLoopBackOff on every node, so USB device passthrough is unavailable. The main container is privileged and runs with a read-only root filesystem while also bind-mounting the host /sys. Under containerd this combination makes the runtime fail to set up the /sys/fs/cgroup mount on the read-only rootfs, and the container never starts.

A privileged container already gets a read-write /sys from the runtime, so the explicit /sys mount is redundant. It is removed together with its volume and the now-dead /sys entry in the SecurityPolicy host-path allow-list.

-------------

Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
@deckhouse-BOaTswain deckhouse-BOaTswain merged commit 0e30620 into release-1.9 Jul 14, 2026
@deckhouse-BOaTswain deckhouse-BOaTswain deleted the cherry-pick-release-1.9-08630242661efb978c6c125f65fc2405725a89ed branch July 14, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants