Implement STAGE_UNSTAGE_VOLUME capability

Summary: Before this, we directly mounted the the rawfile on the mountpoint. In this revision the `STAGE_UNSTAGE_VOLUME` capability is implemented, meaning that the volume is first mounted to a staging path, and then `bind`-mounted to the actual path. This way we can free up loopback devices when they are not needed.

Test Plan:
- Create a pvc, and use it inside a pod
- Run `losetup -l` on the node running the pod, and assert the creation of a loop device
- Delete the pod, but not the pvc
- Run `losetup -l` on the same node, and assert the removal of the loop device

Reviewers: h.marvi, bghadiri

Differential Revision: https://phab.hamravesh.ir/D806
This commit is contained in:
Mehran Kholdi
2020-05-29 20:23:26 +04:30
parent f557aef8ec
commit b2c4b77911
4 changed files with 46 additions and 8 deletions

View File

@@ -2,5 +2,5 @@ apiVersion: v2
name: rawfile-csi
description: RawFile Driver Container Storage Interface
type: application
version: 0.1.2
version: 0.1.3
appVersion: 0.0.1

View File

@@ -47,7 +47,7 @@ spec:
type: DirectoryOrCreate
- name: mountpoint-dir
hostPath:
path: /var/lib/kubelet/pods
path: /var/lib/kubelet
type: DirectoryOrCreate
- name: data-dir
hostPath:
@@ -76,7 +76,7 @@ spec:
- name: socket-dir
mountPath: /csi
- name: mountpoint-dir
mountPath: /var/lib/kubelet/pods
mountPath: /var/lib/kubelet
mountPropagation: "Bidirectional"
- name: data-dir
mountPath: /data