diff --git a/controllers/backupsession_controller.go b/controllers/backupsession_controller.go index b7e0767..b1177fe 100644 --- a/controllers/backupsession_controller.go +++ b/controllers/backupsession_controller.go @@ -54,6 +54,9 @@ func (r *BackupSessionReconciler) Reconcile(ctx context.Context, req ctrl.Reques var targetStatus *formolv1alpha1.TargetStatus var result error targetName := os.Getenv(formolv1alpha1.TARGET_NAME) + if targetName == "" { + panic("targetName is empty. That should not happen") + } for i, t := range backupConf.Spec.Targets { if t.TargetName == targetName { diff --git a/standalone/root.go b/standalone/root.go index 98c2c5e..53ec3c3 100644 --- a/standalone/root.go +++ b/standalone/root.go @@ -87,6 +87,27 @@ func StartRestore( log.Error(err, "unable to update RestoreSession", "restoreSession", restoreSession) return } + log.V(0).Info("restore over. removing the initContainer") + targetObject, targetPodSpec := formolv1alpha1.GetTargetObjects(target.TargetKind) + if err := session.Get(session.Context, client.ObjectKey{ + Namespace: restoreSessionNamespace, + Name: target.TargetName, + }, targetObject); err != nil { + log.Error(err, "unable to get target objects", "target", target.TargetName) + return + } + initContainers := []corev1.Container{} + for _, c := range targetPodSpec.InitContainers { + if c.Name == formolv1alpha1.RESTORECONTAINER_NAME { + continue + } + initContainers = append(initContainers, c) + } + targetPodSpec.InitContainers = initContainers + if err := session.Update(session.Context, targetObject); err != nil { + log.Error(err, "unable to remove the restore initContainer", "targetObject", targetObject) + return + } break } }