Merge pull request #15786 from rook/mergify/bp/release-1.16/pr-15761

osd: fix osd disk cleanup for mpath setups (backport #15761)
This commit is contained in:
mergify[bot] authored and GitHub committed 2025-04-28 08:44:40 +00:00
commit a129fc67e3
1 file changed
+11 -8
+11 -8
View File
@@ -262,16 +262,19 @@ func DestroyOSD(context *clusterd.Context, clusterInfo *client.ClusterInfo, id i
}
logger.Infof("successfully destroyed osd.%d", osdInfo.ID)
if isPVC && osdInfo.Encrypted {
// remove the dm device
// in case of OSD on PVs, fetch the actual device name for the mounted /mnt/<pvc-name>
if isPVC {
pvcName := os.Getenv(oposd.PVCNameEnvVarName)
target := oposd.EncryptionDMName(pvcName, oposd.DmcryptBlockType)
err = removeEncryptedDevice(context, target)
if err != nil {
return nil, errors.Wrapf(err, "failed to remove dm device %q", target)
// remove the dm device
if osdInfo.Encrypted {
target := oposd.EncryptionDMName(pvcName, oposd.DmcryptBlockType)
err = removeEncryptedDevice(context, target)
if err != nil {
return nil, errors.Wrapf(err, "failed to remove dm device %q", target)
}
}
// ceph-volume uses `/dev/mapper/*` for encrypted disks. This is not a block device. So we need to fetch the corresponding
// block device for cleanup using `ceph-volume lvm zap`
// fetch the actual device for cleanup
blockPath := fmt.Sprintf("/mnt/%s", pvcName)
diskInfo, err := clusterd.PopulateDeviceInfo(blockPath, context.Executor)
if err != nil {