freenas-proxmox/.claude/cos/adrs/ADR-008-pve-version-support...

3.0 KiB
Raw Blame History

ADR-008: PVE Version Support Matrix

Date: 2026-05-19
Status: Accepted
Deciders: Kevin Adams

Context

Proxmox VE releases 8.4, 9.0, and 9.1 introduced storage-subsystem changes that affect which PVE versions the plugin must support and under what constraints. Specifically:

  • PVE 8.4 broke our existing pvemanagerlib.js patch (issue #223)
  • PVE 9.0 introduced Snapshot-as-Volume-Chains for thick-provisioned iSCSI
  • PVE 9.1 is the current stable release as of 2026-05-19

The plugin currently ships a single patch per major PVE version (7.x, 8.x). Phase 3 (v3.0) eliminates all patches by using the proper PVE::Storage::Custom plugin interface — but we need a clear decision on which PVE versions each release series must support.

Decision

v2.x (current) — patch-based

PVE version Support level Notes
PVE 7.x Best-effort No active testing; patches ship but may lag
PVE 8.08.3 Supported Existing patch works
PVE 8.4.x Supported (blocked) pvemanagerlib.js patch broken — fix tracked in #223
PVE 9.x Not supported pvemanagerlib.js too diverged; v3.0 is the answer

v2.3.0 is the last planned release to ship patched versions of PVE system files. It will support PVE 7 (best-effort) and PVE 8 (fully). PVE 9.x users should wait for v3.0 or run v2.x in degraded mode (plugin works; UI dropdown may not show).

v3.0.x — custom plugin, no patches

PVE version Support level Notes
PVE 8.x Supported (core) Custom plugin interface available since PVE 7
PVE 9.0+ Fully supported Includes snapshot-as-volume-chains integration
PVE 7.x Not supported v3.0 requires API features not available in PVE 7

Minimum supported PVE for v3.0: 8.x (core), 9.0 (snapshots).

Snapshot support (volume_snapshot, volume_snapshot_rollback, volume_snapshot_delete) requires PVE 9.0 Snapshot-as-Volume-Chains and will be gated at runtime: the methods will be present but return an appropriate error on PVE < 9.0.

Consequences

  • Issue #223 (pvemanagerlib.js PVE 8.4 fix) must ship in v2.3.0
  • v3.0.0 must implement the full PVE::Storage::Custom interface including volume_snapshot* methods (initially returning unsupported on PVE < 9.0)
  • CI for v3.0 must test against both PVE 8.x and PVE 9.x targets
  • The v3.0.0 milestone description and related issues should call out PVE 9.0 as the target for snapshot feature parity
  • PVE 9.x users stuck on v2.x should be documented in a known-limitations note

Alternatives Considered

Support PVE 9.x in v2.x via a new patch: rejected — pvemanagerlib.js diverged significantly in 9.0; maintaining a third patch variant adds fragility without addressing the root cause (patch-based approach).

Make PVE 9.0 the minimum for v3.0: rejected — custom storage plugins work in PVE 8.x and dropping 8.x support would leave a large user base with no upgrade path until they upgrade PVE.