From 18639ccbae6062929e9f2cabc19795678f22f007 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 13:36:05 +0800 Subject: [PATCH] Fix: The error of cannot fetch addon package breaks the loop to continue looking for addon package in the remaining registries (#5188) Signed-off-by: zhaohuihui (cherry picked from commit 9263633db74e24b66acdb54f34b2efd970a9d21e) Co-authored-by: zhaohuihui --- pkg/addon/error.go | 3 +++ pkg/addon/versioned_registry.go | 2 +- references/cli/addon.go | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/addon/error.go b/pkg/addon/error.go index 72e142209..9d38d4feb 100644 --- a/pkg/addon/error.go +++ b/pkg/addon/error.go @@ -43,6 +43,9 @@ var ( // ErrBothCueAndYamlTmpl means yaml and cue app template are exist in addon ErrBothCueAndYamlTmpl = NewAddonError("yaml and cue app template are exist in addon, should only keep one of them") + + // ErrFetch means fetch addon package error(package not exist or parse archive error and so on) + ErrFetch = NewAddonError("cannot fetch addon package") ) // WrapErrRateLimit return ErrRateLimit if is the situation, or return error directly diff --git a/pkg/addon/versioned_registry.go b/pkg/addon/versioned_registry.go index 7e6bc02d0..71004c390 100644 --- a/pkg/addon/versioned_registry.go +++ b/pkg/addon/versioned_registry.go @@ -174,7 +174,7 @@ func (i versionedRegistry) loadAddon(ctx context.Context, name, version string) addonPkg.Meta.SystemRequirements = LoadSystemRequirements(addonVersion.Annotations) return addonPkg, nil } - return nil, fmt.Errorf("cannot load addon '%s'(%s) package from registry '%s'", addonVersion.Name, addonVersion.Version, i.name) + return nil, ErrFetch } // loadAddonVersions Load all available versions of the addon diff --git a/references/cli/addon.go b/references/cli/addon.go index c1dd522ba..112c10a23 100644 --- a/references/cli/addon.go +++ b/references/cli/addon.go @@ -575,7 +575,7 @@ func enableAddon(ctx context.Context, k8sClient client.Client, dc *discovery.Dis continue } err = pkgaddon.EnableAddon(ctx, addonName, version, k8sClient, dc, apply.NewAPIApplicator(k8sClient), config, registry, args, nil, pkgaddon.FilterDependencyRegistries(i, registries), opts...) - if errors.Is(err, pkgaddon.ErrNotExist) { + if errors.Is(err, pkgaddon.ErrNotExist) || errors.Is(err, pkgaddon.ErrFetch) { continue } if unMatchErr := new(pkgaddon.VersionUnMatchError); errors.As(err, unMatchErr) {