Skip to content

Commit 327a12c

Browse files
committed
e2e: share /dev with host in hostpath driver deployment
This is needed for raw block volumes. It mirrors a change made in the upstream deployment in kubernetes-csi/csi-driver-host-path#109 Raw block volumes use loop devices under the hood. "losetup --find --show" uses LOOP_CTL_GET_FREE to get a free loop device. It then expects to have the corresponding /dev/loopX already available. When /dev inside the container is a static tmpfs which doesn't already have those /dev/loop* devices (*) the new device fails to show up, resulting in: I1028 13:25:19.937846 1 server.go:117] GRPC call: /csi.v1.Controller/CreateVolume I1028 13:25:19.938083 1 server.go:118] GRPC request: {"accessibility_requirements":{"preferred":[{"segments":{"topology.hostpath.csi/node":"pmem-csi-pmem-govm-worker3"}}],"requisite":[{"segments":{"topology.hostpath.csi/node":"pmem-csi-pmem-govm-worker3"}}]},"capacity_range":{"required_bytes":5368709120},"name":"pvc-24985a49-5638-4bf6-b789-bb99a28d1073","volume_capabilities":[{"AccessType":{"Block":{}},"access_mode":{"mode":1}}]} I1028 13:25:19.961124 1 volume_path_handler_linux.go:41] Creating device for path: /csi-data-dir/635c6569-f986-11e9-baa6-0242ac110004 I1028 13:25:20.391472 1 volume_path_handler_linux.go:75] Failed device create command for path: /csi-data-dir/635c6569-f986-11e9-baa6-0242ac110004 exit status 1 losetup: /csi-data-dir/635c6569-f986-11e9-baa6-0242ac110004: failed to set up loop device: No such file or directory E1028 13:25:20.392916 1 server.go:121] GRPC error: rpc error: code = Internal desc = failed to create volume 635c6569-f986-11e9-baa6-0242ac110004: failed to attach device /csi-data-dir/635c6569-f986-11e9-baa6-0242ac110004: exit status 1 (*) It seems that the static tmpfs gets populated by Docker based on what's currently on the host when the container starts. That would explain why it worked in the Kubernetes Prow testing - the host must have had enough loop devices already defined.
1 parent 5856397 commit 327a12c

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

test/e2e/testing-manifests/storage-csi/hostpath/hostpath/csi-hostpath-plugin.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ spec:
101101
name: plugins-dir
102102
- mountPath: /csi-data-dir
103103
name: csi-data-dir
104+
- mountPath: /dev
105+
name: dev-dir
104106

105107
- name: liveness-probe
106108
volumeMounts:
@@ -135,3 +137,7 @@ spec:
135137
path: /var/lib/csi-hostpath-data/
136138
type: DirectoryOrCreate
137139
name: csi-data-dir
140+
- hostPath:
141+
path: /dev
142+
type: Directory
143+
name: dev-dir

0 commit comments

Comments
 (0)