apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    meta.helm.sh/release-name: ceph-csi-rbd
    meta.helm.sh/release-namespace: kube-system
  creationTimestamp: "2026-03-27T01:57:00Z"
  generation: 1
  labels:
    app: ceph-csi-rbd
    app.kubernetes.io/managed-by: Helm
    chart: ceph-csi-rbd-3.11.0
    component: provisioner
    heritage: Helm
    release: ceph-csi-rbd
  name: ceph-csi-rbd-provisioner
  namespace: kube-system
  resourceVersion: "1327"
  uid: 60752c35-4280-42b4-931b-216a960f4d66
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: ceph-csi-rbd
      component: provisioner
      release: ceph-csi-rbd
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 50%
    type: RollingUpdate
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: ceph-csi-rbd
        chart: ceph-csi-rbd-3.11.0
        component: provisioner
        heritage: Helm
        release: ceph-csi-rbd
    spec:
      containers:
      - args:
        - --nodeid=$(NODE_ID)
        - --type=rbd
        - --controllerserver=true
        - --pidlimit=-1
        - --endpoint=$(CSI_ENDPOINT)
        - --csi-addons-endpoint=$(CSI_ADDONS_ENDPOINT)
        - --v=5
        - --drivername=$(DRIVER_NAME)
        - --rbdhardmaxclonedepth=8
        - --rbdsoftmaxclonedepth=4
        - --maxsnapshotsonimage=450
        - --minsnapshotsonimage=250
        - --setmetadata=true
        env:
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: DRIVER_NAME
          value: rbd.csi.ceph.com
        - name: NODE_ID
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: spec.nodeName
        - name: CSI_ENDPOINT
          value: unix:///csi/csi-provisioner.sock
        - name: CSI_ADDONS_ENDPOINT
          value: unix:///csi/csi-addons.sock
        image: harbor.atmosphere.dev/quay.io/cephcsi/cephcsi:v3.11.0
        imagePullPolicy: IfNotPresent
        name: csi-rbdplugin
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /csi
          name: socket-dir
        - mountPath: /dev
          name: host-dev
        - mountPath: /sys
          name: host-sys
        - mountPath: /lib/modules
          name: lib-modules
          readOnly: true
        - mountPath: /etc/ceph-csi-config/
          name: ceph-csi-config
        - mountPath: /etc/ceph/
          name: ceph-config
        - mountPath: /etc/ceph-csi-encryption-kms-config/
          name: ceph-csi-encryption-kms-config
        - mountPath: /tmp/csi/keys
          name: keys-tmp-dir
        - mountPath: /run/secrets/tokens
          name: oidc-token
          readOnly: true
      - args:
        - --csi-address=$(ADDRESS)
        - --v=1
        - --timeout=60s
        - --leader-election=true
        - --retry-interval-start=500ms
        - --default-fstype=ext4
        - --extra-create-metadata=true
        - --feature-gates=HonorPVReclaimPolicy=true
        - --prevent-volume-mode-conversion=true
        env:
        - name: ADDRESS
          value: unix:///csi/csi-provisioner.sock
        image: harbor.atmosphere.dev/registry.k8s.io/sig-storage/csi-provisioner:v4.0.0
        imagePullPolicy: IfNotPresent
        name: csi-provisioner
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /csi
          name: socket-dir
      - args:
        - --v=1
        - --csi-address=$(ADDRESS)
        - --timeout=60s
        - --leader-election
        - --retry-interval-start=500ms
        - --handle-volume-inuse-error=false
        - --feature-gates=RecoverVolumeExpansionFailure=true
        env:
        - name: ADDRESS
          value: unix:///csi/csi-provisioner.sock
        image: harbor.atmosphere.dev/registry.k8s.io/sig-storage/csi-resizer:v1.10.0
        imagePullPolicy: IfNotPresent
        name: csi-resizer
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /csi
          name: socket-dir
      - args:
        - --csi-address=$(ADDRESS)
        - --v=1
        - --timeout=60s
        - --leader-election=true
        - --extra-create-metadata=true
        - --enable-volume-group-snapshots=false
        env:
        - name: ADDRESS
          value: unix:///csi/csi-provisioner.sock
        image: harbor.atmosphere.dev/registry.k8s.io/sig-storage/csi-snapshotter:v7.0.0
        imagePullPolicy: IfNotPresent
        name: csi-snapshotter
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /csi
          name: socket-dir
      - args:
        - --v=1
        - --csi-address=$(ADDRESS)
        - --leader-election=true
        - --retry-interval-start=500ms
        - --default-fstype=ext4
        env:
        - name: ADDRESS
          value: unix:///csi/csi-provisioner.sock
        image: harbor.atmosphere.dev/registry.k8s.io/sig-storage/csi-attacher:v4.5.0
        imagePullPolicy: IfNotPresent
        name: csi-attacher
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /csi
          name: socket-dir
      - args:
        - --type=controller
        - --v=5
        - --drivername=$(DRIVER_NAME)
        - --drivernamespace=$(DRIVER_NAMESPACE)
        - --setmetadata=true
        env:
        - name: DRIVER_NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: DRIVER_NAME
          value: rbd.csi.ceph.com
        image: harbor.atmosphere.dev/quay.io/cephcsi/cephcsi:v3.11.0
        imagePullPolicy: IfNotPresent
        name: csi-rbdplugin-controller
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /etc/ceph-csi-config/
          name: ceph-csi-config
        - mountPath: /tmp/csi/keys
          name: keys-tmp-dir
        - mountPath: /etc/ceph/
          name: ceph-config
      - args:
        - --type=liveness
        - --endpoint=$(CSI_ENDPOINT)
        - --metricsport=8080
        - --metricspath=/metrics
        - --polltime=60s
        - --timeout=3s
        env:
        - name: CSI_ENDPOINT
          value: unix:///csi/csi-provisioner.sock
        - name: POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        image: harbor.atmosphere.dev/quay.io/cephcsi/cephcsi:v3.11.0
        imagePullPolicy: IfNotPresent
        name: liveness-prometheus
        ports:
        - containerPort: 8080
          name: metrics
          protocol: TCP
        resources: {}
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /csi
          name: socket-dir
      dnsPolicy: ClusterFirst
      nodeSelector:
        openstack-control-plane: enabled
      priorityClassName: system-cluster-critical
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      serviceAccount: ceph-csi-rbd-provisioner
      serviceAccountName: ceph-csi-rbd-provisioner
      terminationGracePeriodSeconds: 30
      volumes:
      - emptyDir:
          medium: Memory
        name: socket-dir
      - hostPath:
          path: /dev
          type: ""
        name: host-dev
      - hostPath:
          path: /sys
          type: ""
        name: host-sys
      - hostPath:
          path: /lib/modules
          type: ""
        name: lib-modules
      - configMap:
          defaultMode: 420
          name: ceph-config
        name: ceph-config
      - configMap:
          defaultMode: 420
          name: ceph-csi-config
        name: ceph-csi-config
      - configMap:
          defaultMode: 420
          name: ceph-csi-encryption-kms-config
        name: ceph-csi-encryption-kms-config
      - emptyDir:
          medium: Memory
        name: keys-tmp-dir
      - name: oidc-token
        projected:
          defaultMode: 420
          sources:
          - serviceAccountToken:
              audience: ceph-csi-kms
              expirationSeconds: 3600
              path: oidc-token
status:
  availableReplicas: 1
  conditions:
  - lastTransitionTime: "2026-03-27T01:57:28Z"
    lastUpdateTime: "2026-03-27T01:57:28Z"
    message: Deployment has minimum availability.
    reason: MinimumReplicasAvailable
    status: "True"
    type: Available
  - lastTransitionTime: "2026-03-27T01:57:00Z"
    lastUpdateTime: "2026-03-27T01:57:28Z"
    message: ReplicaSet "ceph-csi-rbd-provisioner-69cb97fb6" has successfully progressed.
    reason: NewReplicaSetAvailable
    status: "True"
    type: Progressing
  observedGeneration: 1
  readyReplicas: 1
  replicas: 1
  updatedReplicas: 1
