################################################################################################################# # We need many operations to remove OSDs as written in Documentation/ceph-osd-mgmt.md. # This job can automate some of that operations: mark OSDs as `out`, purge these OSDs, # and delete the corresponding resources like OSD deployments, OSD prepare jobs, and PVCs. # # Please note the following. # # - This job only works for `down` OSDs. # - This job doesn't wait for backfilling to be completed. # # If you want to remove `up` OSDs and/or want to wait for backfilling to be completed between each OSD removal, # please do it by hand. ################################################################################################################# apiVersion: batch/v1 kind: Job metadata: name: rook-ceph-purge-osd namespace: rook-ceph # namespace:operator labels: app: rook-ceph-purge-osd spec: template: spec: serviceAccountName: rook-ceph-system containers: - name: osd-removal image: rook/ceph:master # TODO: Insert the OSD ID in the last parameter that is to be removed # The OSD IDs are a comma-separated list. For example: "0" or "0,2". args: ["ceph", "osd", "remove", "--osd-ids", "3,1,4,2,5"] env: - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: ROOK_MON_ENDPOINTS valueFrom: configMapKeyRef: key: data name: rook-ceph-mon-endpoints - name: ROOK_CEPH_USERNAME valueFrom: secretKeyRef: key: ceph-username name: rook-ceph-mon - name: ROOK_CEPH_SECRET valueFrom: secretKeyRef: key: ceph-secret name: rook-ceph-mon - name: ROOK_CONFIG_DIR value: /var/lib/rook - name: ROOK_CEPH_CONFIG_OVERRIDE value: /etc/rook/config/override.conf - name: ROOK_FSID valueFrom: secretKeyRef: key: fsid name: rook-ceph-mon - name: ROOK_LOG_LEVEL value: DEBUG volumeMounts: - mountPath: /etc/ceph name: ceph-conf-emptydir - mountPath: /var/lib/rook name: rook-config volumes: - emptyDir: {} name: ceph-conf-emptydir - emptyDir: {} name: rook-config restartPolicy: Never