Skip to content

Commit 6fb9ba7

Browse files
committed
deploy: share /dev with host
This is needed for raw block volumes. 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 8359099 commit 6fb9ba7

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed

deploy/kubernetes-1.14/hostpath/csi-hostpath-plugin.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ spec:
102102
name: plugins-dir
103103
- mountPath: /csi-data-dir
104104
name: csi-data-dir
105-
105+
- mountPath: /dev
106+
name: dev-dir
106107
- name: liveness-probe
107108
volumeMounts:
108109
- mountPath: /csi
@@ -136,3 +137,7 @@ spec:
136137
path: /var/lib/csi-hostpath-data/
137138
type: DirectoryOrCreate
138139
name: csi-data-dir
140+
- hostPath:
141+
path: /dev
142+
type: Directory
143+
name: dev-dir

deploy/kubernetes-1.15/hostpath/csi-hostpath-plugin.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ spec:
102102
name: plugins-dir
103103
- mountPath: /csi-data-dir
104104
name: csi-data-dir
105-
105+
- mountPath: /dev
106+
name: dev-dir
106107
- name: liveness-probe
107108
volumeMounts:
108109
- mountPath: /csi
@@ -136,3 +137,7 @@ spec:
136137
path: /var/lib/csi-hostpath-data/
137138
type: DirectoryOrCreate
138139
name: csi-data-dir
140+
- hostPath:
141+
path: /dev
142+
type: Directory
143+
name: dev-dir

deploy/kubernetes-1.16/hostpath/csi-hostpath-plugin.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ spec:
102102
name: plugins-dir
103103
- mountPath: /csi-data-dir
104104
name: csi-data-dir
105-
105+
- mountPath: /dev
106+
name: dev-dir
106107
- name: liveness-probe
107108
volumeMounts:
108109
- mountPath: /csi
@@ -136,3 +137,7 @@ spec:
136137
path: /var/lib/csi-hostpath-data/
137138
type: DirectoryOrCreate
138139
name: csi-data-dir
140+
- hostPath:
141+
path: /dev
142+
type: Directory
143+
name: dev-dir

0 commit comments

Comments
 (0)