diff --git a/pkg/storagesvc/archivePruner.go b/pkg/storagesvc/archivePruner.go index 56a9ad0e..63c22995 100644 --- a/pkg/storagesvc/archivePruner.go +++ b/pkg/storagesvc/archivePruner.go @@ -26,7 +26,6 @@ import ( "github.com/fission/fission/pkg/crd" "github.com/fission/fission/pkg/generated/clientset/versioned" - "github.com/fission/fission/pkg/utils" "github.com/fission/fission/pkg/utils/manager" ) @@ -91,36 +90,36 @@ func (pruner *ArchivePruner) getOrphanArchives(ctx context.Context) { archivesRefByPkgs := make([]string, 0) var archiveID string - // get all pkgs from kubernetes - for _, namespace := range utils.DefaultNSResolver().Snapshot() { - pkgList, err := pruner.crdClient.CoreV1().Packages(namespace).List(ctx, metav1.ListOptions{}) - if err != nil { - pruner.logger.Error("error getting package list from kubernetes", zap.Error(err)) - return - } + // get all pkgs from kubernetes across ALL namespaces (including tenant namespaces) + // Fix: DefaultNSResolver().Snapshot() returns only fission-registered namespaces, + // not tenant namespaces (fission-*). Use NamespaceAll to scan everything. + pkgList, err := pruner.crdClient.CoreV1().Packages(metav1.NamespaceAll).List(ctx, metav1.ListOptions{}) + if err != nil { + pruner.logger.Error("error getting package list from kubernetes", zap.Error(err)) + return + } - // extract archives referenced by these pkgs - for _, pkg := range pkgList.Items { - if pkg.Spec.Deployment.URL != "" { - archiveID, err = getQueryParamValue(pkg.Spec.Deployment.URL, "id") - if err != nil { - pruner.logger.Error("error extracting value of archiveID from deployment url", - zap.Error(err), - zap.String("url", pkg.Spec.Deployment.URL)) - return - } - archivesRefByPkgs = append(archivesRefByPkgs, archiveID) + // extract archives referenced by these pkgs + for _, pkg := range pkgList.Items { + if pkg.Spec.Deployment.URL != "" { + archiveID, err = getQueryParamValue(pkg.Spec.Deployment.URL, "id") + if err != nil { + pruner.logger.Error("error extracting value of archiveID from deployment url", + zap.Error(err), + zap.String("url", pkg.Spec.Deployment.URL)) + return } - if pkg.Spec.Source.URL != "" { - archiveID, err = getQueryParamValue(pkg.Spec.Source.URL, "id") - if err != nil { - pruner.logger.Error("error extracting value of archiveID from source url", - zap.Error(err), - zap.String("url", pkg.Spec.Source.URL)) - return - } - archivesRefByPkgs = append(archivesRefByPkgs, archiveID) + archivesRefByPkgs = append(archivesRefByPkgs, archiveID) + } + if pkg.Spec.Source.URL != "" { + archiveID, err = getQueryParamValue(pkg.Spec.Source.URL, "id") + if err != nil { + pruner.logger.Error("error extracting value of archiveID from source url", + zap.Error(err), + zap.String("url", pkg.Spec.Source.URL)) + return } + archivesRefByPkgs = append(archivesRefByPkgs, archiveID) } }