Skip to main content

PVC Browse & Mount

Browse PersistentVolumeClaim contents directly (works on every platform), or mount them as local drives (Linux/macOS via FUSE, Windows via WinFsp).

Browse

Right-click → Browse on any PVC, or double-click the PVC row.

A file-browser viewport opens showing the PVC root directory.

Toolbar

ButtonAction
Back / ForwardNavigate history
HomeGo to /
Path breadcrumbClick any segment to jump
RefreshRe-list the current directory
New FolderCreate a directory
UploadMulti-file picker; streams via dd with auto-resume
DownloadSaves selection; streams via cat with CRC32 verification

Table columns

ColumnDetail
NameIcon (file/folder/symlink) + name. Double-click to navigate
SizeFiles only
ModifiedRelative age, full timestamp on tooltip
ModeUnix permissions, e.g. drwxr-xr-x

All columns are sortable. .. always appears first in non-root directories.

File operations

Right-click a row (or selection):

  • Open Folder — same as double-click.
  • Download — streams from pod via cat, with parallel cksum CRC32 computed remotely and verified locally. Auto-resumes on truncation. Directories download as tar archives.
  • Upload (here) — toolbar-level.
  • Rename — inline edit.
  • Deleterm -rf with confirmation. UI updates immediately.
  • Permissions — chmod modal. Toggle r/w/x for user/group/other, or type an octal value; the two stay in sync.
  • Copy Path — copies the absolute path inside the PVC.

Streaming & integrity

  • Downloads — chunked streaming cat plus remote cksum CRC32 computed in parallel. If a chunk fails, only that chunk is re-requested (not the whole file).
  • Uploads — local CRC computed before sending; remote cksum verifies post-write. On WebSocket stdin limits, uploads auto-resume mid-file.

Progress is shown in the bottom status bar with speed (MB/s) and ETA.

Disk usage

Click the Disk Usage toggle in the toolbar to switch the Browse window to one of two visualizations.

Tree view

  • Collapsible directory tree (via egui_ltreeview).
  • Each row shows size, file count, folder count, and a usage progress bar (relative to parent).
  • Large directories cap at 200 children per level to keep the UI responsive.
  • Updates live as the scan proceeds — you can click into a folder while it's still being measured.

Treemap view

  • Nested squarified treemap: rectangle area = directory size.
  • Click to zoom into a directory.
  • Right-click / back gesture to zoom out.
  • Tooltip on hover shows path, size, file count.

The scan runs du -b on the pod and streams results. Cancelable via window close.

FUSE Mount (Linux / macOS only)

Mount a PVC as a directory on your machine. Works with any pod that has cat, dd, cksum, and a POSIX shell — no additional cluster setup.

Prerequisites

  • Linuxfuse3 runtime installed, user in the fuse group. See Installation.
  • macOS — macFUSE installed and allowed in System Settings.

Not available on Windows — use Mount (WinFsp) instead (below).

Mounting

  1. Right-click a PVC → Mount.
  2. In the dialog, review:
    • Mount path — defaults to /tmp/kubezilla-pvc-{ns}-{name}. Editable.
    • Read-only — unchecked by default; toggle if you don't want to risk writes.
  3. Click Mount.

The mount appears in the Active Mounts toolbar row:

[💾 my-pvc /tmp/kubezilla-pvc-default-my-pvc Mounted] [Open] [Copy path] [Unmount]
  • Open — opens the mount in your file manager.
  • Copy path — clipboard-copies the mount path.
  • Unmount — cleanly releases the mount; auto-unmounts on app exit.

How it works

  • Reads: streaming cat with 4MB chunks, CRC-validated via persistent shell, auto-resume on truncation.
  • Writes: up to 12 parallel dd workers, each writing a chunk to a distinct byte offset. Persistent CRC shell verifies writes; up to 3 retries per chunk.
  • statfs is implemented so df reports sane numbers.
  • Kubezilla prefers a persistent shell per mount (one-off exec fallback if persistent shell can't be established).

See also: Pod Filesystem Browse & Mount — same tech, different source.

Windows (WinFsp)

Same workflow — Mount button in the PVC context menu or Info window. Behind the scenes, Kubezilla talks to WinFsp (install "Core" component from winfsp.dev).

  • A free drive letter is auto-assigned (e.g. Z:\).
  • If WinFsp is not installed, the Mount button shows an error with a download link.

PVC Info window

Opening a PVC's Info (right-click → Info) shows extra Overview sections beyond the normal fields:

  • Mount status — if currently mounted, shows path with Open Folder / Copy / Unmount.
  • Used by Pods — clickable pod names with per-pod Shell and Logs buttons (multi-container picker when needed).
  • Helm Release — detected from labels/annotations. Clickable to open the release.
  • ArgoCD Application — detected from labels. Clickable.
  • Controlled By — owner chain (auto-fetched silently).