ensure target namespace exists prior to retoring a resource (#2389)

Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
pull/2398/head
Ashish Amarnath 2020-04-03 07:57:01 -07:00 committed by GitHub
parent 969526cee5
commit 061b4463ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 0 deletions

View File

@ -798,6 +798,15 @@ func (ctx *context) restoreItem(obj *unstructured.Unstructured, groupResource sc
}).Info("Not restoring item because namespace is excluded")
return warnings, errs
}
// if the namespace scoped resource should be restored, ensure that the namespace into
// which the resource is being restored into exists.
// This is the *remapped* namespace that we are ensuring exists.
nsToEnsure := getNamespace(ctx.log, getItemFilePath(ctx.restoreDir, "namespaces", "", obj.GetNamespace()), namespace)
if _, err := kube.EnsureNamespaceExistsAndIsReady(nsToEnsure, ctx.namespaceClient, ctx.resourceTerminatingTimeout); err != nil {
errs.AddVeleroError(err)
return warnings, errs
}
} else {
if boolptr.IsSetToFalse(ctx.restore.Spec.IncludeClusterResources) {
ctx.log.WithFields(logrus.Fields{