Page MenuHomePhabricator

Enable the Container Storage Interface (CSI) and the Ceph CSI plugin on dse-k8s-codfw cluster
Closed, ResolvedPublic

Description

The required steps to get this going are:

  • Add the keys for the two csi plugins for dse-k8s-codfw
  • Create the values files for helmfile.d/admin_ng/values/dse-k8s-codfw/ceph-csi-cephfs-values.yaml and helmfile.d/admin_ng/values/dse-k8s-codfw/ceph-csi-rbd-values.yaml
  • Verify with a simple pod and pvc

Event Timeline

Change #1188754 had a related patch set uploaded (by Stevemunene; author: Stevemunene):

[operations/deployment-charts@master] dse-k8s:Enable CSI and the Ceph CSI plugin on dse-k8s-codfw

https://gerrit.wikimedia.org/r/1188754

Change #1189133 had a related patch set uploaded (by Stevemunene; author: Stevemunene):

[labs/private@master] Add a dummy Ceph user keys for the cephcsi plugin to use

https://gerrit.wikimedia.org/r/1189133

Change #1189133 merged by Stevemunene:

[labs/private@master] Add a dummy Ceph user keys for the cephcsi plugin to use

https://gerrit.wikimedia.org/r/1189133

Change #1188754 merged by jenkins-bot:

[operations/deployment-charts@master] dse-k8s:Enable CSI and the Ceph CSI plugin on dse-k8s-codfw

https://gerrit.wikimedia.org/r/1188754

Successfully deployed in codfw

NAME: ceph-csi-cephfs
LAST DEPLOYED: Fri Sep 19 10:13:05 2025
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Examples on how to configure a storage class and start using the driver are here:
https://github.com/ceph/ceph-csi/tree/devel/examples/cephfs

Listing releases matching ^ceph-csi-cephfs$
Release "ceph-csi-rbd" does not exist. Installing it now.
NAME: ceph-csi-rbd
LAST DEPLOYED: Fri Sep 19 10:13:05 2025
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Examples on how to configure a storage class and start using the driver are here:
https://github.com/ceph/ceph-csi/tree/devel/examples/rbd

Listing releases matching ^ceph-csi-rbd$
ceph-csi-cephfs	kube-system	1       	2025-09-19 10:13:05.911080676 +0000 UTC	deployed	ceph-csi-cephfs-0.1.8	3.7.2      

ceph-csi-rbd	kube-system	1       	2025-09-19 10:13:05.899257078 +0000 UTC	deployed	ceph-csi-rbd-0.1.11	3.7.2      


UPDATED RELEASES:
NAME              NAMESPACE     CHART                        VERSION   DURATION
ceph-csi-cephfs   kube-system   wmf-stable/ceph-csi-cephfs   0.1.8          14s
ceph-csi-rbd      kube-system   wmf-stable/ceph-csi-rbd      0.1.11         14s

Re opening this task since we have had some issues using ceph on dse-k8s-codfw.
To test the integration, we tried a simple pvc definition as a raw block device

root@deploy2002:~# kube_env admin dse-k8s-codfw
root@deploy2002:~# kubectl create namespace stevemunene-pvc-tests
namespace/stevemunene-pvc-tests created
root@deploy2002:~# kubectl get namespaces
NAME                    STATUS   AGE
analytics-test          Active   47h
cert-manager            Active   10d
default                 Active   10d
echoserver              Active   10d
external-services       Active   10d
istio-system            Active   10d
kube-node-lease         Active   10d
kube-public             Active   10d
kube-system             Active   10d
opensearch-ipoid        Active   10d
opensearch-ipoid-test   Active   10d
opensearch-operator     Active   10d
opensearch-test         Active   10d
sidecar-controller      Active   10d
stevemunene-pvc-tests   Active   13s


root@deploy2002:~# cat /home/stevemunene/raw-block-pvc.yaml 
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: raw-block-pvc
  namespace: stevemunene-pvc-tests
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Block
  resources:
    requests:
      storage: 1Gi
  storageClassName: ceph-rbd-ssd

Then create a very simple pod which attempts to bind this pvc.

---
apiVersion: v1
kind: Pod
metadata:
  name: pod-with-raw-block-volume
  namespace: stevemunene-pvc-tests
spec:
  containers:
    - name: do-nothing
      image: docker-registry.discovery.wmnet/bookworm:20240630
      command: ["/bin/sh", "-c"]
      args: ["tail -f /dev/null"]
      volumeDevices:
        - name: data
          devicePath: /dev/xvda
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: raw-block-pvc

Ran into some scheduling errors and could not get the scheduler pods up.

root@deploy2002:~# kubectl -n stevemunene-pvc-tests get events -w
LAST SEEN   TYPE      REASON                 OBJECT                                MESSAGE
5m32s       Warning   FailedScheduling       pod/pod-with-raw-block-volume         0/4 nodes are available: pod has unbound immediate PersistentVolumeClaims. preemption: 0/4 nodes are available: 4 Preemption is not helpful for scheduling.
2m40s       Normal    Provisioning           persistentvolumeclaim/raw-block-pvc   External provisioner is provisioning volume for claim "stevemunene-pvc-tests/raw-block-pvc"
71s         Normal    ExternalProvisioning   persistentvolumeclaim/raw-block-pvc   Waiting for a volume to be created either by the external provisioner 'rbd.csi.ceph.com' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered.
0s          Normal    Provisioning           persistentvolumeclaim/raw-block-pvc   External provisioner is provisioning volume for claim "stevemunene-pvc-tests/raw-block-pvc"
0s          Normal    ExternalProvisioning   persistentvolumeclaim/raw-block-pvc   Waiting for a volume to be created either by the external provisioner 'rbd.csi.ceph.com' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered.
0s          Normal    Provisioning           persistentvolumeclaim/raw-block-pvc   External provisioner is provisioning volume for claim "stevemunene-pvc-tests/raw-block-pvc"

Upon further investigation,we see

^Croot@deploy2002:~# kubectl -n kube-system get events -w
LAST SEEN   TYPE      REASON             OBJECT                                            MESSAGE
11m         Warning   FailedScheduling   pod/calico-typha-7c5b67b766-g4fbr                 0/4 nodes are available: 2 node(s) didn't have free ports for the requested pod ports, 2 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }. preemption: 0/4 nodes are available: 2 Preemption is not helpful for scheduling, 2 node(s) didn't have free ports for the requested pod ports.
11m         Warning   FailedScheduling   pod/ceph-csi-cephfs-provisioner-5f8874f66-hdd8j   0/4 nodes are available: 2 node(s) didn't match pod anti-affinity rules, 2 node(s) had untolerated taint {node-role.kubernetes.io/control-plane: }. preemption: 0/4 nodes are available: 2 Preemption is not helpful for scheduling, 2 node(s) didn't match pod anti-affinity rules.
11m

Checking the pod details for a better look

root@deploy2002:~# kubectl get pod pod-with-raw-block-volume -o yaml -n stevemunene-pvc-tests 
apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"name":"pod-with-raw-block-volume","namespace":"stevemunene-pvc-tests"},"spec":{"containers":[{"args":["tail -f /dev/null"],"command":["/bin/sh","-c"],"image":"docker-registry.discovery.wmnet/bookworm:20240630","name":"do-nothing","volumeDevices":[{"devicePath":"/dev/xvda","name":"data"}]}],"volumes":[{"name":"data","persistentVolumeClaim":{"claimName":"raw-block-pvc"}}]}}
  creationTimestamp: "2025-10-07T06:51:06Z"
  name: pod-with-raw-block-volume
  namespace: stevemunene-pvc-tests
  resourceVersion: "10912722"
  uid: c6137e26-ff1d-4706-a12a-fee08ce8f45d
spec:
  containers:
  - args:
    - tail -f /dev/null
    command:
    - /bin/sh
    - -c
    image: docker-registry.discovery.wmnet/bookworm:20240630
    imagePullPolicy: IfNotPresent
    name: do-nothing
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeDevices:
    - devicePath: /dev/xvda
      name: data
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-vhrxd
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  preemptionPolicy: PreemptLowerPriority
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: default
  serviceAccountName: default
  terminationGracePeriodSeconds: 30
  tolerations:
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
    tolerationSeconds: 300
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
    tolerationSeconds: 300
  volumes:
  - name: data
    persistentVolumeClaim:
      claimName: raw-block-pvc
  - name: kube-api-access-vhrxd
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2025-10-07T06:51:06Z"
    message: '0/4 nodes are available: pod has unbound immediate PersistentVolumeClaims.
      preemption: 0/4 nodes are available: 4 Preemption is not helpful for scheduling.'
    reason: Unschedulable
    status: "False"
    type: PodScheduled
  phase: Pending
  qosClass: BestEffort

Noticed this pod has unbound immediate PersistentVolumeClaims so next was to look at the pvc for more info

root@deploy2002:~# kubectl get pvc -n stevemunene-pvc-tests 
NAME            STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
raw-block-pvc   Pending                                      ceph-rbd-ssd   <unset>                 3d22h

root@deploy2002:~# kubectl get pvc -n stevemunene-pvc-tests 
NAME            STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
raw-block-pvc   Pending                                      ceph-rbd-ssd   <unset>                 3d22h
root@deploy2002:~# kubectl describe pvc raw-block-pvc -n stevemunene-pvc-tests 
Name:          raw-block-pvc
Namespace:     stevemunene-pvc-tests
StorageClass:  ceph-rbd-ssd
Status:        Pending
Volume:        
Labels:        <none>
Annotations:   volume.beta.kubernetes.io/storage-provisioner: rbd.csi.ceph.com
               volume.kubernetes.io/storage-provisioner: rbd.csi.ceph.com
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      
Access Modes:  
VolumeMode:    Block
Used By:       pod-with-raw-block-volume
Events:
  Type    Reason                Age                        From                                                                                             Message
  ----    ------                ----                       ----                                                                                             -------
  Normal  ExternalProvisioning  3m50s (x22605 over 3d22h)  persistentvolume-controller                                                                      Waiting for a volume to be created either by the external provisioner 'rbd.csi.ceph.com' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered.
  Normal  Provisioning          19s (x1517 over 3d22h)     rbd.csi.ceph.com_ceph-csi-rbd-provisioner-69c74d89cc-znf98_e2ab8de1-a73b-47e5-82fe-7f89b39d87fd  External provisioner is provisioning volume for claim "stevemunene-pvc-tests/raw-block-pvc"

Verified the secrets and keys for the cluster, plugin as well.

root@deploy2002:~# kubectl get csidriver 
NAME                  ATTACHREQUIRED   PODINFOONMOUNT   STORAGECAPACITY   TOKENREQUESTS   REQUIRESREPUBLISH   MODES        AGE
cephfs.csi.ceph.com   false            false            false             <unset>         false               Persistent   17d
rbd.csi.ceph.com      true             false            false             <unset>         false               Persistent   17d

Deleted the pod and the unbound pvc to give it another try

root@deploy2002:~# kubectl delete pvc raw-block-pvc -n stevemunene-pvc-tests 
persistentvolumeclaim "raw-block-pvc" deleted
root@deploy2002:~# kubectl get pods -n stevemunene-pvc-tests 
No resources found in stevemunene-pvc-tests namespace.
root@deploy2002:~# kubectl get pvc -n stevemunene-pvc-tests 
No resources found in stevemunene-pvc-tests namespace.
root@deploy2002:~#

Tried recreating and got a permission error

0s          Normal    Provisioning           persistentvolumeclaim/raw-block-pvc   External provisioner is provisioning volume for claim "stevemunene-pvc-tests/raw-block-pvc"
0s          Warning   ProvisioningFailed     persistentvolumeclaim/raw-block-pvc   failed to provision volume with StorageClass "ceph-rbd-ssd": rpc error: code = Internal desc = rados: ret=-1, Operation not permitted
0s          Normal    Provisioning           persistentvolumeclaim/raw-block-pvc   External provisioner is provisioning volume for claim "stevemunene-pvc-tests/raw-block-pvc"
0s          Warning   ProvisioningFailed     persistentvolumeclaim/raw-block-pvc   failed to provision volume with StorageClass "ceph-rbd-ssd": rpc error: code = Internal desc = rados: ret=-1, Operation not permitted

Checking the permissions we have for our key in codfw

stevemunene@cephosd2001:~$ sudo ceph auth get client.dse-k8s-csi-cephfs
[client.dse-k8s-csi-cephfs]
	key = REDACTED
	caps mds = "allow r fsname=dpe path=/volumes, allow rws fsname=dpe path=/volumes/csi, allow r fsname=dumps path=/volumes, allow rws fsname=dumps path=/volumes/csi"
	caps mgr = "allow rw"
	caps mon = "allow r fsname=dpe, allow r fsname=dumps"
	caps osd = "allow rw tag cephfs metadata=dpe, allow rw tag cephfs data=dpe, allow rw tag cephfs metadata=dumps, allow rw tag cephfs data=dumps"

vs in eqiad

stevemunene@cephosd1001:~$ sudo ceph auth get client.dse-k8s-csi-cephfs
[client.dse-k8s-csi-cephfs]
	key = REDACTED
	caps mds = "allow r fsname=dpe path=/volumes, allow rws fsname=dpe path=/volumes/csi, allow r fsname=dumps path=/volumes, allow rws fsname=dumps path=/volumes/csi"
	caps mgr = "allow rw"
	caps mon = "allow r fsname=dpe, allow r fsname=dumps"
	caps osd = "allow rw tag cephfs metadata=dpe, allow rw tag cephfs data=dpe, allow rw tag cephfs metadata=dumps, allow rw tag cephfs data=dumps"

These seem ok

Change #1195649 had a related patch set uploaded (by Btullis; author: Btullis):

[operations/puppet@production] Update the permissions for the dse-k8s-csi user in codfw

https://gerrit.wikimedia.org/r/1195649

Change #1195649 merged by Btullis:

[operations/puppet@production] Update the permissions for the dse-k8s-csi user in codfw

https://gerrit.wikimedia.org/r/1195649

Change #1195694 had a related patch set uploaded (by Btullis; author: Btullis):

[operations/puppet@production] Fix the definition of @dse_kubepods_networks to include codfw

https://gerrit.wikimedia.org/r/1195694

I have verified that the cephfs plugin is working.

I used a PVC spec like this:

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-cephfs-pvc
  namespace: stevemunene-pvc-tests
spec:
  accessModes:
    - ReadWriteMany
  volumeMode: Filesystem
  resources:
    requests:
      storage: 1Gi
  storageClassName: ceph-cephfs-ssd

I used a pod spec like this:

apiVersion: v1
kind: Pod
metadata:
  name: cephfs-pod
  namespace: stevemunene-pvc-tests
spec:
  containers:
    - name: do-nothing
      image: docker-registry.discovery.wmnet/bookworm:20240630
      command: ["/bin/sh", "-c"]
      args: ["tail -f /dev/null"]
      volumeMounts:
        - name: test-cephfs-volume
          mountPath: /mnt
      securityContext:
        allowPrivilegeEscalation: false
        capabilities:
           drop:
           - ALL
        runAsNonRoot: true
        runAsUser: 65534
        seccompProfile:
          type: RuntimeDefault
  volumes:
    - name: test-cephfs-volume
      persistentVolumeClaim:
        claimName: test-cephfs-pvc
        readOnly: false

I created the PVC and the pod.

root@deploy2002:/home/btullis# kubectl -f pvc-cephfs.yaml apply
persistentvolumeclaim/test-cephfs-pvc created
root@deploy2002:/home/btullis# kubectl get pvc
No resources found in default namespace.
root@deploy2002:/home/btullis# kubectl get pvc -n stevemunene-pvc-tests 
NAME              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      VOLUMEATTRIBUTESCLASS   AGE
test-cephfs-pvc   Bound    pvc-2a478f32-9266-4583-8644-e8a6217623fc   1Gi        RWX            ceph-cephfs-ssd   <unset>                 21s
root@deploy2002:/home/btullis#

root@deploy2002:/home/btullis# kubectl -f pod-cephfs.yaml apply
pod/cephfs-pod created

root@deploy2002:/home/btullis# kubectl get pods -n stevemunene-pvc-tests 
NAME         READY   STATUS    RESTARTS   AGE
cephfs-pod   1/1     Running   0          45s
root@deploy2002:/home/btullis#

I was then able to exec into the pod and verify that the filesystem was available.

root@deploy2002:/home/btullis# kubectl -n stevemunene-pvc-tests exec -it cephfs-pod -- bash
nobody@cephfs-pod:/$ findmnt /mnt
TARGET SOURCE                                                                                                                                                                                        FSTYPE OPTIONS
/mnt   [2620:0:860:10a:10:192:9:17]:6789,[10.192.9.17]:6789,[2620:0:860:105:10:192:26:19]:6789,[10.192.26.19]:6789,[2620:0:860:11c:10:192:37:16]:6789,[10.192.37.16]:6789:/volumes/csi/csi-vol-3cdd0a2f-a842-11f0-99cc-16d6c0dadd92/299a2eb0-5a46-470b-9e64-5b2c7b930eb4
                                                                                                                                                                                                     ceph   rw,rela
nobody@cephfs-pod:/$ df -h /mnt
Filesystem                                                                                                                                                                                                                                                         Size  Used Avail Use% Mounted on
[2620:0:860:10a:10:192:9:17]:6789,[10.192.9.17]:6789,[2620:0:860:105:10:192:26:19]:6789,[10.192.26.19]:6789,[2620:0:860:11c:10:192:37:16]:6789,[10.192.37.16]:6789:/volumes/csi/csi-vol-3cdd0a2f-a842-11f0-99cc-16d6c0dadd92/299a2eb0-5a46-470b-9e64-5b2c7b930eb4  1.0G     0  1.0G   0% /mnt
nobody@cephfs-pod:/$

I still have some permission errors regarding the RBD plugin, which I'm working to resolve.

The raw disk access via the rbd plugin is now working, too.
Here is my PVC spec.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: raw-block-pvc
  namespace: stevemunene-pvc-tests
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Block
  resources:
    requests:
      storage: 1Gi
  storageClassName: ceph-rbd-ssd

Here is the pod spec.

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-raw-block-volume
  namespace: stevemunene-pvc-tests
spec:
  containers:
    - name: do-nothing
      image: docker-registry.discovery.wmnet/bookworm:20240630
      command: ["/bin/sh", "-c"]
      args: ["tail -f /dev/null"]
      volumeDevices:
        - name: data
          devicePath: /dev/xvda
      securityContext:
        allowPrivilegeEscalation: false
        capabilities:
           drop:
           - ALL
        runAsNonRoot: true
        runAsUser: 65534
        seccompProfile:
          type: RuntimeDefault
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: raw-block-pvc

I was able to create the pvc like this.

root@deploy2002:/home/btullis# kubectl -f raw-block-pvc.yaml apply
persistentvolumeclaim/raw-block-pvc created

I could check that the PV was provisioned bound correctly to the PVC.

root@deploy2002:/home/btullis# kubectl -n stevemunene-pvc-tests get pvc
NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
raw-block-pvc   Bound    pvc-575ce61b-1de4-4c8f-961b-1a7f194eca9f   1Gi        RWO            ceph-rbd-ssd   <unset>                 99s

I could then create the pod that gets the device assigned.

root@deploy2002:/home/btullis# kubectl -f raw-block-pod.yaml apply
pod/pod-with-raw-block-volume created

I could then exec into the pod and check that the device is present.

root@deploy2002:/home/btullis# kubectl -n stevemunene-pvc-tests exec -it pod-with-raw-block-volume -- bash
nobody@pod-with-raw-block-volume:/$ ls -l /dev/xvda 
brw-rw---- 1 root disk 252, 0 Oct 13 21:09 /dev/xvda

I can't format the device, because I would have to be either root or a member of the disk group, but that's fine. This is just a test.

And now the filesystem-based rbd volumes are working.
I used a PVC spec like this:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: fs-pvc
  namespace: stevemunene-pvc-tests
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 1Gi
  storageClassName: ceph-rbd-ssd

I used a pod spec like this:

apiVersion: v1
kind: Pod
metadata:
  name: pod-with-fs
  namespace: stevemunene-pvc-tests
spec:
  containers:
    - name: do-nothing
      image: docker-registry.discovery.wmnet/bookworm:20240630
      command: ["/bin/sh", "-c"]
      args: ["tail -f /dev/null"]
      volumeMounts:
        - name: data
          mountPath: /mnt
      securityContext:
        allowPrivilegeEscalation: false
        capabilities:
           drop:
           - ALL
        runAsNonRoot: true
        runAsUser: 65534
        seccompProfile:
          type: RuntimeDefault
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: fs-pvc
        readOnly: false

I created the PVC.

root@deploy2002:/home/btullis# kubectl -f fs-pvc.yaml apply
persistentvolumeclaim/fs-pvc created

Then I checked that the PV had been provisioned and correctly bound to the PVC.

root@deploy2002:/home/btullis# kubectl -n stevemunene-pvc-tests get pvc
NAME     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
fs-pvc   Bound    pvc-ca1d1e87-f24e-4e5a-b4b6-c8ea897ee45d   1Gi        RWO            ceph-rbd-ssd   <unset>                 15s

Then I created the pod.

root@deploy2002:/home/btullis# kubectl -f fs-pod.yaml apply
pod/pod-with-fs created

I was able to exec into the pod and verify that the filesystem had been created and mounted correctly.

root@deploy2002:/home/btullis# kubectl -n stevemunene-pvc-tests exec -it pod-with-fs -- bash

nobody@pod-with-fs:/$ findmnt /mnt
TARGET SOURCE    FSTYPE OPTIONS
/mnt   /dev/rbd0 ext4   rw,relatime,stripe=1024

nobody@pod-with-fs:/$ df -h /mnt
Filesystem      Size  Used Avail Use% Mounted on
/dev/rbd0       974M   24K  958M   1% /mnt
nobody@pod-with-fs:/$

I'm happy that this is now working, so we can resolve this ticket.

BTullis triaged this task as High priority.
BTullis updated the task description. (Show Details)

Change #1195766 had a related patch set uploaded (by Btullis; author: Btullis):

[operations/deployment-charts@master] Cephosd: stop the csi plugins watching the namespace used for tests

https://gerrit.wikimedia.org/r/1195766

Change #1195766 merged by jenkins-bot:

[operations/deployment-charts@master] Cephosd: stop the csi plugins watching the namespace used for tests

https://gerrit.wikimedia.org/r/1195766

I removed the namespace that we have been using for tests.

root@deploy2002:/srv/deployment-charts/helmfile.d/admin_ng# kubectl delete namespace stevemunene-pvc-tests
namespace "stevemunene-pvc-tests" deleted

Change #1195694 merged by Btullis:

[operations/puppet@production] Update the definition of @dse_kubepods_networks

https://gerrit.wikimedia.org/r/1195694