Note: in order to keep the other thread clean (https://forum.proxmox.com/threads/p...h-shared-fc-storage.186319/page-2#post-869245) I have moved the conversation over here.
@bbgeek17 as a reply to your message:
Indeed, this CSI has been built with AI as far as I can tell. It does not modify Proxmox source code, however. When I talked to the author about utilizing the experimental API to implement snap shots he came up with this approach. Not really what I want to use. So I forked it and implemented username/password authentication in order to call the API as root@pve.
Anyway, the CSI itself works fine (except the snapshotting) and roughly does that:
When it comes to snapshot though, the independent volume needs to be snapshotted. At that time in can be either attached or not attached to a K8s node's VM. Even if it would be attached a snapshot of a single volume should not perform a full backup of the K8s node its attached too. So the only way is to call the Storage API to copy/clone a volume, which on a snapshot-as-a-chain LVM should create an QCOW2 snapshot chain. This API is unfortunately a NO-OP at the moment, doing nothing and just returning with SUCCESS.
Do you have any better recommendations for a K8s CSI which supports shared LUN storage on PVE? My research only brought up this CSI.
@bbgeek17 as a reply to your message:
Indeed, this CSI has been built with AI as far as I can tell. It does not modify Proxmox source code, however. When I talked to the author about utilizing the experimental API to implement snap shots he came up with this approach. Not really what I want to use. So I forked it and implemented username/password authentication in order to call the API as root@pve.
Anyway, the CSI itself works fine (except the snapshotting) and roughly does that:
- a K8s PVC claim gets created, referencing the Proxmox Shared LVM CSI
- the CSI created a new volume belonging to VM 9999 (so no VM in theory, in big clusters that fixed number is definitely an issue)
- the new volume was originally created as RAW but with the patch introduced in PVE (https://lore.proxmox.com/all/20260716103243.61836-1-e.huhsovitz@proxmox.com/) it can now created it as a QCOW2 volume
- as soon as a POD referencing the PVC gets scheduled on a K8s node, the volume will be hot-added to the corresponding virtual machine in PVE
- when the POD gets evicted, the volume will be hot-removed from the corresponding virtual machine in PVE
When it comes to snapshot though, the independent volume needs to be snapshotted. At that time in can be either attached or not attached to a K8s node's VM. Even if it would be attached a snapshot of a single volume should not perform a full backup of the K8s node its attached too. So the only way is to call the Storage API to copy/clone a volume, which on a snapshot-as-a-chain LVM should create an QCOW2 snapshot chain. This API is unfortunately a NO-OP at the moment, doing nothing and just returning with SUCCESS.
Do you have any better recommendations for a K8s CSI which supports shared LUN storage on PVE? My research only brought up this CSI.