-
Notifications
You must be signed in to change notification settings - Fork 154
Open
Description
Hello, and thanks for the free driver. I think I have found a bug in the "readOnly" setting.
What happened: I made a read-only PV and a read-only PVC, and yet a container using the PVC was able to write to the file system.
What you expected to happen: I expect that making a read-only PVC would prevent writing to the file system.
How to reproduce it:
pv-test.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-test
spec:
accessModes:
- ReadOnlyMany
capacity:
storage: 10Gi
csi:
driver: smb.csi.k8s.io
readOnly: true # Set to read-only at CSI level
nodeStageSecretRef:
name: airflow-smb-lhdata-credentials
namespace: dev-jeepatel-airflow
volumeAttributes:
source: //BEDSTRNTAPIMG02.corp.logixhealth.local/lhdata/Integrator_Data
volumeHandle: pv-test
mountOptions:
- dir_mode=0555 # Read-only directory permissions
- file_mode=0444 # Read-only file permissions
- vers=3.0
- domain=CORP
- ro # Read-only mount option
persistentVolumeReclaimPolicy: Retain
storageClassName: pv-testpvc-test.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-test
namespace: dev-jeepatel-airflow
spec:
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 10Gi
volumeName: pv-test
storageClassName: pv-testpod-test.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-test
namespace: dev-jeepatel-airflow
spec:
restartPolicy: Never
containers:
- name: pod-test
image: ubuntu:22.04
command: ["/bin/sleep"]
args: ["infinity"]
volumeMounts:
- name: pod-test-volume
mountPath: /mnt/pvc-test
volumes:
- name: pod-test-volume
persistentVolumeClaim:
claimName: pvc-testWhen we exec into the Ubuntu container, we are successfully able to write to the mount, which means that the CSI driver is bugged - the read-only setting does nothing.
lhadmin@bedpk8s001:~/jeenil$ kd pod-test.yaml
pod "pod-test" deleted from dev-jeepatel-airflow namespace
lhadmin@bedpk8s001:~/jeenil$ ka pod-test.yaml
pod/pod-test created
lhadmin@bedpk8s001:~/jeenil$ k exec -it pod-test -n dev-jeepatel-airflow -- bash
root@pod-test:/# cd /mnt
root@pod-test:/mnt# ll
total 8
drwxr-xr-x 1 root root 4096 Oct 22 19:24 ./
drwxr-xr-x 1 root root 4096 Oct 22 19:24 ../
dr-xr-xr-x 2 root root 0 Oct 22 18:35 pvc-test/
root@pod-test:/mnt# cd pvc-test/
root@pod-test:/mnt/pvc-test# ll
total 5
dr-xr-xr-x 2 root root 0 Oct 22 18:35 ./
drwxr-xr-x 1 root root 4096 Oct 22 19:24 ../
dr-xr-xr-x 2 root root 0 Sep 16 13:57 Corp/
dr-xr-xr-x 2 root root 0 Jul 31 20:03 InboundHL7/
dr-xr-xr-x 2 root root 0 Oct 22 18:29 TEMP-CLOUD-backup/
-r--r--r-- 1 root root 0 Oct 22 18:35 test.txt
root@pod-test:/mnt/pvc-test# cat test.txt
root@pod-test:/mnt/pvc-test# rm test.txt
root@pod-test:/mnt/pvc-test# touch test2.txt
root@pod-test:/mnt/pvc-test# ll
total 5
dr-xr-xr-x 2 root root 0 Oct 22 19:24 ./
drwxr-xr-x 1 root root 4096 Oct 22 19:24 ../
dr-xr-xr-x 2 root root 0 Sep 16 13:57 Corp/
dr-xr-xr-x 2 root root 0 Jul 31 20:03 InboundHL7/
dr-xr-xr-x 2 root root 0 Oct 22 18:29 TEMP-CLOUD-backup/
-r--r--r-- 1 root root 0 Oct 22 19:24 test2.txt
root@pod-test:/mnt/pvc-test#
Anything else we need to know?:
Environment:
lhadmin@bedpk8s001:~/jeenil$ kubectl get po -n kube-system -o yaml | grep registry.k8s | grep smb
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
imageID: registry.k8s.io/sig-storage/smbplugin@sha256:6ee890f4f53704dc7ed68fc967d216c7762a3496ff53c15bec98e6dc0f969daf
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
imageID: registry.k8s.io/sig-storage/smbplugin@sha256:6ee890f4f53704dc7ed68fc967d216c7762a3496ff53c15bec98e6dc0f969daf
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
imageID: registry.k8s.io/sig-storage/smbplugin@sha256:6ee890f4f53704dc7ed68fc967d216c7762a3496ff53c15bec98e6dc0f969daf
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
image: registry.k8s.io/sig-storage/smbplugin:v1.18.0
imageID: registry.k8s.io/sig-storage/smbplugin@sha256:6ee890f4f53704dc7ed68fc967d216c7762a3496ff53c15bec98e6dc0f969daf
lhadmin@bedpk8s001:~/jeenil$ kubectl version
Client Version: v1.34.1
Kustomize Version: v5.7.1
Server Version: v1.34.1
lhadmin@bedpk8s001:~/jeenil$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.5 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
lhadmin@bedpk8s001:~/jeenil$ uname -a
Linux bedpk8s001 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
lhadmin@bedpk8s001:~/jeenil$
Metadata
Metadata
Assignees
Labels
No labels