diff --git a/changelogs/unreleased/5236-sseago b/changelogs/unreleased/5236-sseago new file mode 100644 index 0000000000..4d295cce85 --- /dev/null +++ b/changelogs/unreleased/5236-sseago @@ -0,0 +1 @@ +Check for empty ns list before checking nslist[0] diff --git a/pkg/backup/item_collector.go b/pkg/backup/item_collector.go index 5cbc178361..474fbabee3 100644 --- a/pkg/backup/item_collector.go +++ b/pkg/backup/item_collector.go @@ -225,8 +225,11 @@ func (r *itemCollector) getResourceItems(log logrus.FieldLogger, gv schema.Group namespacesToList := getNamespacesToList(r.backupRequest.NamespaceIncludesExcludes) - // Check if we're backing up namespaces, and only certain ones - if gr == kuberesource.Namespaces && namespacesToList[0] != "" { + // Check if we're backing up namespaces for a less-than-full backup. + // We enter this block if resource is Namespaces and the namespae list is either empty or contains + // an explicit namespace list. (We skip this block if the list contains "" since that indicates + // a full-cluster backup + if gr == kuberesource.Namespaces && (len(namespacesToList) == 0 || namespacesToList[0] != "") { resourceClient, err := r.dynamicFactory.ClientForGroupVersionResource(gv, resource, "") if err != nil { log.WithError(err).Error("Error getting dynamic client")