mirror of
https://github.com/kubernetes-csi/csi-driver-nvmf.git
synced 2025-04-28 03:11:45 +00:00
* fix: make multiple connections to one same nqn possible in a single node Multiple connections to one same nqn in a single node return -EALREADY error. So, we should use a hostnqn to make every connections seperate. It is appropriate to use a target path from a volume request as a hostnqn. * fix: make ro and rw mounts for one same nqn possible in a single node ReadOnly and ReadWrite mounts for one same nqn in a single node return -EBUSY error. So, we should remove readonly and readwrite options when mounting a block device in a csi driver. A cri runtime makes a mount as readonly inside containers if needed. * fix: add fallback supports for no hostnqn sysfs file supports Directories per each nqn will be created in /run/nvmf and files per each hostnqn will be created in /run/nvmf/{nqn}. If linux kernel has no hostnqn sysfs file supports, we will disconnect all connections for a nqn at once when a directory for the nqn is empty. * refactor: rename sysfs_nqn_path to sysfs_subsysnqn_path * refactor: use filepath.Join instead of strings.Join * fix: add explicitly UnsupportedHostnqnError for fallback supports If linux kernel has no hostnqn sysfs file supports, return UnsupportedHostnqnError and switch to fallback mode which will disconnect all connections at once when a last controller in a nqn is disconnected. * fix: return directly after fallback mode * fix: mount the host's /run/nvmf directory to csi-node-driver
112 lines
3.3 KiB
YAML
112 lines
3.3 KiB
YAML
kind: DaemonSet
|
|
apiVersion: apps/v1
|
|
metadata:
|
|
name: csi-nvmf-node
|
|
namespace: kube-system
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: csi-nvmf-node
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: csi-nvmf-node
|
|
spec:
|
|
serviceAccount: csi-nvmf-node-sa
|
|
hostNetwork: true
|
|
dnsPolicy: Default
|
|
containers:
|
|
- name: node-registrar
|
|
image: registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.6.2
|
|
env:
|
|
- name: DRIVER_REG_SOCK_PATH
|
|
value: /var/lib/kubelet/plugins/csi.nvmf.com/csi.sock
|
|
- name: KUBE_NODE_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
args:
|
|
- "--v=2"
|
|
- "--csi-address=/csi/csi.sock"
|
|
- "--kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)"
|
|
livenessProbe:
|
|
exec:
|
|
command:
|
|
- /csi-node-driver-registrar
|
|
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
|
|
- --mode=kubelet-registration-probe
|
|
initialDelaySeconds: 30
|
|
timeoutSeconds: 15
|
|
volumeMounts:
|
|
- name: registration-dir
|
|
mountPath: /registration
|
|
- name: socket-dir
|
|
mountPath: /csi
|
|
resources:
|
|
limits:
|
|
memory: 100Mi
|
|
requests:
|
|
cpu: 10m
|
|
memory: 20Mi
|
|
|
|
- name: csi-nvmf-plugin
|
|
securityContext:
|
|
privileged: true
|
|
capabilities:
|
|
add: ["SYS_ADMIN"]
|
|
allowPrivilegeEscalation: true
|
|
image: nvmfplugin:latest
|
|
imagePullPolicy: "IfNotPresent"
|
|
args:
|
|
- "--endpoint=$(CSI_ENDPOINT)"
|
|
- "--nodeid=$(NODE_ID)"
|
|
env:
|
|
- name: CSI_ENDPOINT
|
|
value: unix:///var/lib/kubelet/plugins/csi.nvmf.com/csi.sock
|
|
- name: NODE_ID
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
volumeMounts:
|
|
- name: socket-dir
|
|
mountPath: /var/lib/kubelet/plugins/csi.nvmf.com
|
|
- name: pods-mount-dir
|
|
mountPath: /var/lib/kubelet/pods
|
|
mountPropagation: "Bidirectional"
|
|
- name: run-nvmf-dir
|
|
mountPath: /run/nvmf
|
|
- name: host-dev
|
|
mountPath: /dev
|
|
mountPropagation: "HostToContainer"
|
|
- name: host-sys
|
|
mountPath: /sys
|
|
- name: lib-modules
|
|
mountPath: /lib/modules
|
|
readOnly: true
|
|
volumes:
|
|
- name: socket-dir
|
|
hostPath:
|
|
path: /var/lib/kubelet/plugins/csi.nvmf.com
|
|
type: DirectoryOrCreate
|
|
- name: registration-dir
|
|
hostPath:
|
|
path: /var/lib/kubelet/plugins_registry
|
|
type: DirectoryOrCreate
|
|
- name: pods-mount-dir
|
|
hostPath:
|
|
path: /var/lib/kubelet/pods
|
|
type: Directory
|
|
- name: run-nvmf-dir
|
|
hostPath:
|
|
path: /run/nvmf
|
|
type: DirectoryOrCreate
|
|
- name: host-dev
|
|
hostPath:
|
|
path: /dev
|
|
- name: host-sys
|
|
hostPath:
|
|
path: /sys
|
|
- name: lib-modules
|
|
hostPath:
|
|
path: /lib/modules
|