TopoLVM does not care about Retain
reclaim policy
because CSI volumes can be referenced only via PersistentVolumeClaims.
Ref: https://kubernetes.io/docs/concepts/storage/volumes/#csi
The
csi
volume type does not support direct reference from Pod and may only be referenced in a Pod via aPersistentVolumeClaim
object.
TopoLVM expects that PVCs are created in advance of their Pods. However, the TopoLVM webhook does not block the creation of a Pod when there are missing PVCs for the Pod. This is because such usages are valid in other StorageClasses and the webhook cannot identify the StorageClasses without PVCs. For such Pods, TopoLVM's extended scheduler will not work.
The typical usage of TopoLVM is using StatefulSet with volumeClaimTemplate.
Node storage capacity annotation is not updated in TopoLVM's extended scheduler. Therefore, when multiple pods requesting TopoLVM volumes are created at once, the extended scheduler cannot reference the exact capacity of the underlying LVM volume group.
Note that pod scheduling is also affected by the amount of CPU and memory. Because of this, this problem may not be observable.
The logical volume created by CSI ephemeral volumes may be left behind by restarting the node. This problem is because the kubelet on the restarted node may fail to remove the logical volume through the CSI driver when pods are removed.