Note
This CSI doesn't require anymore Xen Orchestra 6.4+. The driver now uses tags to store Kubernetes metadata in Xen Orchestra VDIs.
Warning
Breaking change — migration required before upgrading
See the migration guide for step-by-step instructions.
What's new
Local storage support (#43)
The storageType: local StorageClass parameter instructs the driver to pin each VDI to a host-local SR. Unlike shared storage (NFS, iSCSI, Ceph…), a local SR is physically attached to a single XCP-ng host; only VMs running on that host can mount VDIs stored there.
For further details, consult the local storage documentation.
Add automatic pool discovery fallback (#44)
When CreateVolume is called without a poolId StorageClass parameter and without accessibility_requirements topology, fall back to discover eligible pools by the k8s-pool tag instead of returning InvalidArgument.
Refactor: Replace the deprecated other_config with tags to store VDI metadata. (#54)
The driver's stable CSI volume ID is stored at creation time in a VDI tag with the format k8s:volumeId:<uuid>.
v0.4.0 no longer reads other_config for runtime lookups. These keys remain on migrated VDIs as legacy compatibility data for rollback and manual recovery, but they are not used by the driver at runtime.
If you are upgrading from v0.3.0, you must apply the v0.3.0 to v0.4.0 migration to backfill the new tag-based metadata. Without it, legacy dynamic volumes will not be discoverable.
Additional tags set at creation time:
| Tag | Value | Purpose |
|---|---|---|
k8s:volumeId:<uuid> |
CSI volume ID (UUID) | Primary lookup key |
k8s:pvName:<pv-name> |
Kubernetes PV name | Idempotency check in CreateVolume |
k8s:managedBy:<driver>@<version> |
Driver identifier | Identifies CSI-managed VDIs |
For further details, consult the lookup and identification doc
Fixes
- Lookup for static provisioned volume that use raw VDI UUID as volume handle (commit)
- Sanity tests now test all possible storageClass.
Migration required
Volumes created with v0.3.0 must be backfilled before upgrading.
Note
Both operations are non-destructive and can be performed with xe vdi-param-set on each XCP-ng host. Both operations can be performed on live volumes without interrupting workloads, and have no impact on PersistentVolumes currently in use.
Full instructions: Migration v0.3.0 → v0.4.0
Full Changelog: v0.3.0...v0.4.0