From: Joseph Sawaya Date: Thu, 19 Aug 2021 18:49:44 +0000 (-0400) Subject: mgr/rook: remove prepare jobs based on PVC not device set X-Git-Tag: v17.1.0~1009^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f0d7a45984483d55a87a4ff4fab9a7565cbc0b84;p=ceph.git mgr/rook: remove prepare jobs based on PVC not device set This commit fixes a bug in the OSD removal process that removes all prepare jobs for OSDs in the same device set as the one that is being removed. Signed-off-by: Joseph Sawaya --- diff --git a/src/pybind/mgr/rook/rook_cluster.py b/src/pybind/mgr/rook/rook_cluster.py index 89659cee4737..9fe2db327337 100644 --- a/src/pybind/mgr/rook/rook_cluster.py +++ b/src/pybind/mgr/rook/rook_cluster.py @@ -509,6 +509,7 @@ class DefaultRemover(): def remove_device_sets(self) -> str: self.to_remove: Dict[str, int] = {} + self.pvc_to_remove: List[str] = [] for pod in self.pods.items: if ( hasattr(pod, 'metadata') @@ -520,6 +521,7 @@ class DefaultRemover(): self.to_remove[pod.metadata.labels['ceph.rook.io/DeviceSet']] = self.to_remove[pod.metadata.labels['ceph.rook.io/DeviceSet']] + 1 else: self.to_remove[pod.metadata.labels['ceph.rook.io/DeviceSet']] = 1 + self.pvc_to_remove.append(pod.metadata.labels['ceph.rook.io/pvc']) def _remove_osds(current_cluster, new_cluster): # type: (ccl.CephCluster, ccl.CephCluster) -> ccl.CephCluster assert new_cluster.spec.storage is not None and new_cluster.spec.storage.storageClassDeviceSets is not None @@ -575,7 +577,7 @@ class DefaultRemover(): def clean_up_prepare_jobs_and_pvc(self) -> None: for job in self.jobs.items: - if job.metadata.labels['app'] == 'rook-ceph-osd-prepare' and job.metadata.labels['ceph.rook.io/DeviceSet'] in self.to_remove: + if job.metadata.labels['app'] == 'rook-ceph-osd-prepare' and job.metadata.labels['ceph.rook.io/pvc'] in self.pvc_to_remove: self.batchV1_api.delete_namespaced_job(name=job.metadata.name, namespace='rook-ceph', propagation_policy='Foreground') self.coreV1_api.delete_namespaced_persistent_volume_claim(name=job.metadata.labels['ceph.rook.io/pvc'], namespace='rook-ceph', propagation_policy='Foreground')