--- kind: Service apiVersion: v1 metadata: name: csi-rbdplugin-provisioner labels: app: csi-metrics spec: selector: app: csi-rbdplugin-provisioner ports: - name: http-metrics port: 8080 protocol: TCP targetPort: 8080 - name: grpc-metrics port: 8090 protocol: TCP targetPort: 8090 --- kind: StatefulSet apiVersion: apps/v1 metadata: name: csi-rbdplugin-provisioner spec: serviceName: "csi-rbdplugin-provisioner" replicas: 1 selector: matchLabels: app: csi-rbdplugin-provisioner template: metadata: labels: app: csi-rbdplugin-provisioner spec: serviceAccount: rbd-csi-provisioner containers: - name: csi-provisioner image: quay.io/k8scsi/csi-provisioner:v1.3.0 args: - "--csi-address=$(ADDRESS)" - "--v=5" - "--timeout=60s" - "--retry-interval-start=500ms" env: - name: ADDRESS value: unix:///csi/csi-provisioner.sock imagePullPolicy: "IfNotPresent" volumeMounts: - name: socket-dir mountPath: /csi - name: csi-snapshotter image: quay.io/k8scsi/csi-snapshotter:v1.1.0 args: - "--csi-address=$(ADDRESS)" - "--v=5" - "--timeout=60s" env: - name: ADDRESS value: unix:///csi/csi-provisioner.sock imagePullPolicy: Always securityContext: privileged: true volumeMounts: - name: socket-dir mountPath: /csi - name: csi-attacher image: quay.io/k8scsi/csi-attacher:v1.2.0 args: - "--v=5" - "--csi-address=$(ADDRESS)" env: - name: ADDRESS value: /csi/csi-provisioner.sock - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace imagePullPolicy: "IfNotPresent" volumeMounts: - name: socket-dir mountPath: /csi - name: csi-rbdplugin securityContext: privileged: true capabilities: add: ["SYS_ADMIN"] # for stable functionality replace canary with latest release version image: quay.io/cephcsi/cephcsi:v1.2.1 args: - "--nodeid=$(NODE_ID)" - "--type=rbd" - "--controllerserver=true" - "--endpoint=$(CSI_ENDPOINT)" - "--v=5" - "--drivername=rbd.csi.ceph.com" - "--pidlimit=-1" - "--metricsport=8090" - "--metricspath=/metrics" - "--enablegrpcmetrics=false" env: - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP - name: NODE_ID valueFrom: fieldRef: fieldPath: spec.nodeName - name: CSI_ENDPOINT value: unix:///csi/csi-provisioner.sock imagePullPolicy: "IfNotPresent" volumeMounts: - name: socket-dir mountPath: /csi - mountPath: /dev name: host-dev - mountPath: /sys name: host-sys - mountPath: /lib/modules name: lib-modules readOnly: true - name: ceph-csi-config mountPath: /etc/ceph-csi-config/ - name: keys-tmp-dir mountPath: /tmp/csi/keys - name: liveness-prometheus image: quay.io/cephcsi/cephcsi:v1.2.1 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: fieldPath: status.podIP volumeMounts: - name: socket-dir mountPath: /csi imagePullPolicy: "IfNotPresent" volumes: - name: host-dev hostPath: path: /dev - name: host-sys hostPath: path: /sys - name: lib-modules hostPath: path: /lib/modules - name: socket-dir hostPath: path: /var/lib/kubelet/plugins/rbd.csi.ceph.com type: DirectoryOrCreate - name: ceph-csi-config configMap: name: ceph-csi-config - name: keys-tmp-dir emptyDir: { medium: "Memory" }