clone PV after deleting retained PV

Signed-off-by: Lyndon-Li <lyonghui@vmware.com>
This commit is contained in:
Lyndon-Li
2026-06-24 18:27:57 +08:00
parent 5844ce873d
commit 2c5dcb8474
+17 -17
View File
@@ -459,13 +459,6 @@ func (e *genericRestoreExposer) rebindVolumeChangeMode(ctx context.Context, owne
return errors.Wrapf(err, "error to delete restore pod %s", restorePodName)
}
err = kube.EnsureDeletePVC(ctx, e.kubeClient.CoreV1(), restorePVCName, ownerObject.Namespace, param.OperationTimeout)
if err != nil {
return errors.Wrapf(err, "error to delete restore PVC %s", restorePVCName)
}
curLog.WithField("restore PVC", restorePVCName).Info("Restore PVC is deleted")
err = kube.WaitVolumeDetached(ctx, e.kubeClient.StorageV1(), restorePV.Name, param.OperationTimeout)
if err != nil {
return errors.Wrapf(err, "error waiting for restore PV %s to detach", restorePV.Name)
@@ -473,12 +466,12 @@ func (e *genericRestoreExposer) rebindVolumeChangeMode(ctx context.Context, owne
curLog.WithField("restore PV", restorePV.Name).Info("Restore PV is detached")
rebindPV, err = kube.RebindPV(ctx, e.kubeClient.CoreV1(), uuid.NewString(), restorePV, targetPVC, orgReclaim, param.TargetFSType)
err = kube.EnsureDeletePVC(ctx, e.kubeClient.CoreV1(), restorePVCName, ownerObject.Namespace, param.OperationTimeout)
if err != nil {
return errors.Wrapf(err, "error rebinding PV for target PVC %s", param.TargetPVCName)
return errors.Wrapf(err, "error to delete restore PVC %s", restorePVCName)
}
curLog.WithField("rebind PV", rebindPV.Name).Info("Rebind PV is created")
curLog.WithField("restore PVC", restorePVCName).Info("Restore PVC is deleted")
err = kube.EnsureDeletePV(ctx, e.kubeClient.CoreV1(), restorePV.Name, param.OperationTimeout)
if err != nil {
@@ -489,6 +482,13 @@ func (e *genericRestoreExposer) rebindVolumeChangeMode(ctx context.Context, owne
retained = nil
rebindPV, err = kube.RebindPV(ctx, e.kubeClient.CoreV1(), uuid.NewString(), restorePV, targetPVC, orgReclaim, param.TargetFSType)
if err != nil {
return errors.Wrapf(err, "error rebinding PV for target PVC %s", param.TargetPVCName)
}
curLog.WithField("rebind PV", rebindPV.Name).Info("Rebind PV is created")
_, err = kube.RebindPVC(ctx, e.kubeClient.CoreV1(), targetPVC, rebindPV.Name)
if err != nil {
return errors.Wrapf(err, "error to rebind target PVC %s/%s to %s", targetPVC.Namespace, targetPVC.Name, rebindPV.Name)
@@ -539,13 +539,6 @@ func (e *genericRestoreExposer) rebindVolumeSameMode(ctx context.Context, ownerO
return errors.Wrapf(err, "error to delete restore pod %s", restorePodName)
}
err = kube.EnsureDeletePVC(ctx, e.kubeClient.CoreV1(), restorePVCName, ownerObject.Namespace, param.OperationTimeout)
if err != nil {
return errors.Wrapf(err, "error to delete restore PVC %s", restorePVCName)
}
curLog.WithField("restore PVC", restorePVCName).Info("Restore PVC is deleted")
err = kube.WaitVolumeDetached(ctx, e.kubeClient.StorageV1(), restorePV.Name, param.OperationTimeout)
if err != nil {
return errors.Wrapf(err, "error waiting for restore PV %s to detach", restorePV.Name)
@@ -553,6 +546,13 @@ func (e *genericRestoreExposer) rebindVolumeSameMode(ctx context.Context, ownerO
curLog.WithField("restore PV", restorePV.Name).Info("Restore PV is detached")
err = kube.EnsureDeletePVC(ctx, e.kubeClient.CoreV1(), restorePVCName, ownerObject.Namespace, param.OperationTimeout)
if err != nil {
return errors.Wrapf(err, "error to delete restore PVC %s", restorePVCName)
}
curLog.WithField("restore PVC", restorePVCName).Info("Restore PVC is deleted")
_, err = kube.RebindPVC(ctx, e.kubeClient.CoreV1(), targetPVC, restorePV.Name)
if err != nil {
return errors.Wrapf(err, "error to rebind target PVC %s/%s to %s", targetPVC.Namespace, targetPVC.Name, restorePV.Name)