diff --git a/channels/pkg/cmd/apply_channel.go b/channels/pkg/cmd/apply_channel.go index cd77dd616b..ad375a0795 100644 --- a/channels/pkg/cmd/apply_channel.go +++ b/channels/pkg/cmd/apply_channel.go @@ -27,6 +27,7 @@ import ( "github.com/blang/semver/v4" "github.com/cert-manager/cert-manager/pkg/client/clientset/versioned" "github.com/spf13/cobra" + "go.uber.org/multierr" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" @@ -168,18 +169,18 @@ func applyMenu(ctx context.Context, menu *channels.AddonMenu, k8sClient kubernet RESTMapper: restMapper, } + var merr error + for _, needUpdate := range needUpdates { update, err := needUpdate.EnsureUpdated(ctx, k8sClient, cmClient, pruner, channelVersions[needUpdate.GetNamespace()+":"+needUpdate.Name]) if err != nil { - fmt.Printf("error updating %q: %v", needUpdate.Name, err) + merr = multierr.Append(merr, fmt.Errorf("updating %q: %w", needUpdate.Name, err)) } else if update != nil { fmt.Printf("Updated %q\n", update.Name) } } - fmt.Printf("\n") - - return nil + return merr } func getUpdates(ctx context.Context, menu *channels.AddonMenu, k8sClient kubernetes.Interface, cmClient versioned.Interface, channelVersions map[string]*channels.ChannelVersion) ([]*channels.AddonUpdate, []*channels.Addon, error) { diff --git a/go.mod b/go.mod index 702db37322..21ecef7fe1 100644 --- a/go.mod +++ b/go.mod @@ -75,6 +75,7 @@ require ( github.com/stretchr/testify v1.7.2 github.com/weaveworks/mesh v0.0.0-20191105120815-58dbcc3e8e63 github.com/zclconf/go-cty v1.10.0 + go.uber.org/multierr v1.6.0 golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 @@ -235,7 +236,6 @@ require ( go.opencensus.io v0.23.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect go.uber.org/atomic v1.9.0 // indirect - go.uber.org/multierr v1.6.0 // indirect golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect golang.org/x/text v0.3.7 // indirect