From 6b27d082210353dafd1fcdc0a538dc5d6811a39e Mon Sep 17 00:00:00 2001 From: Denis Egorenko Date: Tue, 12 Aug 2025 19:05:54 +0400 Subject: [PATCH] operator: mount udev to cleanup job and disable udev sync Mount /run/udev inside cluster cleanup jobs and disable udev sync with DM_DISABLE_UDEV. Related-Issue: rook#16292 Signed-off-by: Denis Egorenko (cherry picked from commit 09622a8b8d9d5c2199d3ae6903412b969c9b2bae) --- pkg/operator/ceph/cluster/cleanup.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/operator/ceph/cluster/cleanup.go b/pkg/operator/ceph/cluster/cleanup.go index 2475a9407..c04449722 100644 --- a/pkg/operator/ceph/cluster/cleanup.go +++ b/pkg/operator/ceph/cluster/cleanup.go @@ -121,6 +121,11 @@ func (c *ClusterController) cleanUpJobContainer(cluster *cephv1.CephCluster, mon {Name: sanitizeDataSource, Value: cluster.Spec.CleanupPolicy.SanitizeDisks.DataSource.String()}, {Name: sanitizeIteration, Value: strconv.Itoa(int(cluster.Spec.CleanupPolicy.SanitizeDisks.Iteration))}, }...) + // mount udev for host based clusters + if len(cluster.Spec.Storage.StorageClassDeviceSets) == 0 { + volumeMounts = append(volumeMounts, v1.VolumeMount{Name: "run-udev", MountPath: "/run/udev"}) + envVars = append(envVars, v1.EnvVar{Name: "DM_DISABLE_UDEV", Value: "1"}) + } if opcontroller.LoopDevicesAllowed() { envVars = append(envVars, v1.EnvVar{Name: "CEPH_VOLUME_ALLOW_LOOP_DEVICES", Value: "true"}) } @@ -149,6 +154,10 @@ func (c *ClusterController) cleanUpJobTemplateSpec(cluster *cephv1.CephCluster, devVolume := v1.Volume{Name: "devices", VolumeSource: v1.VolumeSource{HostPath: &v1.HostPathVolumeSource{Path: "/dev"}}} volumes = append(volumes, hostPathVolume) volumes = append(volumes, devVolume) + // mount udev for host based clusters + if len(cluster.Spec.Storage.StorageClassDeviceSets) == 0 { + volumes = append(volumes, v1.Volume{Name: "run-udev", VolumeSource: v1.VolumeSource{HostPath: &v1.HostPathVolumeSource{Path: "/run/udev"}}}) + } podSpec := v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{