diff --git a/pkg/restic/restorer.go b/pkg/restic/restorer.go index 6d538b735..a618390bd 100644 --- a/pkg/restic/restorer.go +++ b/pkg/restic/restorer.go @@ -34,7 +34,7 @@ import ( // Restorer can execute restic restores of volumes in a pod. type Restorer interface { // RestorePodVolumes restores all annotated volumes in a pod. - RestorePodVolumes(restore *arkv1api.Restore, pod *corev1api.Pod, log logrus.FieldLogger) []error + RestorePodVolumes(restore *arkv1api.Restore, pod *corev1api.Pod, sourceNamespace string, log logrus.FieldLogger) []error } type restorer struct { @@ -84,14 +84,14 @@ func newRestorer( return r } -func (r *restorer) RestorePodVolumes(restore *arkv1api.Restore, pod *corev1api.Pod, log logrus.FieldLogger) []error { +func (r *restorer) RestorePodVolumes(restore *arkv1api.Restore, pod *corev1api.Pod, sourceNamespace string, log logrus.FieldLogger) []error { // get volumes to restore from pod's annotations volumesToRestore := GetPodSnapshotAnnotations(pod) if len(volumesToRestore) == 0 { return nil } - repo, err := r.repoEnsurer.EnsureRepo(r.ctx, restore.Namespace, pod.Namespace) + repo, err := r.repoEnsurer.EnsureRepo(r.ctx, restore.Namespace, sourceNamespace) if err != nil { return []error{err} } diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 2792e307c..7be73de48 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -757,6 +757,7 @@ func (ctx *context) restoreResource(resource, namespace, resourcePath string) (a // necessary because we may have remapped the namespace // if the namespace is blank, don't create the key + originalNamespace := obj.GetNamespace() if namespace != "" { obj.SetNamespace(namespace) } @@ -839,7 +840,7 @@ func (ctx *context) restoreResource(resource, namespace, resourcePath string) (a return []error{err} } - if errs := ctx.resticRestorer.RestorePodVolumes(ctx.restore, pod, ctx.log); errs != nil { + if errs := ctx.resticRestorer.RestorePodVolumes(ctx.restore, pod, originalNamespace, ctx.log); errs != nil { ctx.log.WithError(kubeerrs.NewAggregate(errs)).Error("unable to successfully complete restic restores of pod's volumes") return errs }