diff --git a/src/internal/packager/images/push.go b/src/internal/packager/images/push.go index 7c69e63dbf..d47971f477 100644 --- a/src/internal/packager/images/push.go +++ b/src/internal/packager/images/push.go @@ -51,6 +51,7 @@ func (i *ImageConfig) PushToZarfRegistry() error { httpTransport := http.DefaultTransport.(*http.Transport).Clone() httpTransport.TLSClientConfig.InsecureSkipVerify = i.Insecure progressBar := message.NewProgressBar(totalSize, fmt.Sprintf("Pushing %d images to the zarf registry", len(i.ImageList))) + defer progressBar.Stop() craneTransport := utils.NewTransport(httpTransport, progressBar) pushOptions := config.GetCraneOptions(i.Insecure, i.Architectures...) diff --git a/src/pkg/packager/create.go b/src/pkg/packager/create.go index 8d91214e54..0549f92044 100755 --- a/src/pkg/packager/create.go +++ b/src/pkg/packager/create.go @@ -173,7 +173,7 @@ func (p *Packager) Create() (err error) { return err } - if err := helpers.Retry(doPull, 3, 5*time.Second); err != nil { + if err := helpers.Retry(doPull, 3, 5*time.Second, message.Warnf); err != nil { return fmt.Errorf("unable to pull images after 3 attempts: %w", err) } diff --git a/src/pkg/packager/deploy.go b/src/pkg/packager/deploy.go index 2a06590ac1..7f8f8d30cb 100644 --- a/src/pkg/packager/deploy.go +++ b/src/pkg/packager/deploy.go @@ -460,7 +460,7 @@ func (p *Packager) pushImagesToRegistry(componentImages []string, noImgChecksum return helpers.Retry(func() error { return imgConfig.PushToZarfRegistry() - }, 3, 5*time.Second) + }, 3, 5*time.Second, message.Warnf) } // Push all of the components git repos to the configured git server. @@ -497,7 +497,7 @@ func (p *Packager) pushReposToRepository(reposPath string, repos []string) error } // Try repo push up to 3 times - if err := helpers.Retry(tryPush, 3, 5*time.Second); err != nil { + if err := helpers.Retry(tryPush, 3, 5*time.Second, message.Warnf); err != nil { return fmt.Errorf("unable to push repo %s to the Git Server: %w", repoURL, err) } } diff --git a/src/pkg/utils/helpers/misc.go b/src/pkg/utils/helpers/misc.go index 6031e21262..9673077fbe 100644 --- a/src/pkg/utils/helpers/misc.go +++ b/src/pkg/utils/helpers/misc.go @@ -12,13 +12,15 @@ import ( ) // Retry will retry a function until it succeeds or the timeout is reached, timeout == retries * delay. -func Retry(fn func() error, retries int, delay time.Duration) (err error) { +func Retry(fn func() error, retries int, delay time.Duration, logger func(format string, args ...any)) (err error) { for r := 0; r < retries; r++ { err = fn() if err == nil { break } + logger("Encountered an error, retrying (%d/%d): %s", r+1, retries, err.Error()) + time.Sleep(delay) }