From 929731cf8bb75b4140410992b2596c777a7f1702 Mon Sep 17 00:00:00 2001 From: Lyndon-Li Date: Mon, 25 Mar 2024 16:23:34 +0800 Subject: [PATCH 1/2] issue 7535: don't exclude resources in MustHave list during restore Signed-off-by: Lyndon-Li --- pkg/restore/restore.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 929b14c9ec..04db113b7c 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -1122,7 +1122,7 @@ func (ctx *restoreContext) restoreItem(obj *unstructured.Unstructured, groupReso // Check if group/resource should be restored. We need to do this here since // this method may be getting called for an additional item which is a group/resource // that's excluded. - if !ctx.resourceIncludesExcludes.ShouldInclude(groupResource.String()) { + if !ctx.resourceIncludesExcludes.ShouldInclude(groupResource.String()) && !ctx.resourceMustHave.Has(groupResource.String()) { restoreLogger.Info("Not restoring item because resource is excluded") return warnings, errs, itemExists } From 070e99da3d030f2363f09ff162b1addc82264989 Mon Sep 17 00:00:00 2001 From: Lyndon-Li Date: Thu, 28 Mar 2024 19:10:52 +0800 Subject: [PATCH 2/2] issue 7535: don't exclude resources in MustHave list during restore Signed-off-by: Lyndon-Li --- changelogs/unreleased/7585-Lyndon-Li | 1 + pkg/restore/restore.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/7585-Lyndon-Li diff --git a/changelogs/unreleased/7585-Lyndon-Li b/changelogs/unreleased/7585-Lyndon-Li new file mode 100644 index 0000000000..c40616bd03 --- /dev/null +++ b/changelogs/unreleased/7585-Lyndon-Li @@ -0,0 +1 @@ +Fix issue #7535, add the MustHave resource check during item collection and item filter for restore \ No newline at end of file diff --git a/pkg/restore/restore.go b/pkg/restore/restore.go index 04db113b7c..43e17cf83e 100644 --- a/pkg/restore/restore.go +++ b/pkg/restore/restore.go @@ -2202,7 +2202,7 @@ func (ctx *restoreContext) getOrderedResourceCollection( // Check if the resource should be restored according to the resource // includes/excludes. - if !ctx.resourceIncludesExcludes.ShouldInclude(groupResource.String()) { + if !ctx.resourceIncludesExcludes.ShouldInclude(groupResource.String()) && !ctx.resourceMustHave.Has(groupResource.String()) { ctx.log.WithField("resource", groupResource.String()).Infof("Skipping restore of resource because the restore spec excludes it") continue }