From af7b1f262dc775cd4e6f9fb03c8d2cb6d9e853d9 Mon Sep 17 00:00:00 2001 From: james pickett Date: Wed, 2 Aug 2023 12:24:27 -0500 Subject: [PATCH] add retry logic to getting all target metadata form notary --- pkg/make/builder.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/make/builder.go b/pkg/make/builder.go index c763d607b..dc51e70cf 100644 --- a/pkg/make/builder.go +++ b/pkg/make/builder.go @@ -30,6 +30,7 @@ import ( "github.com/go-kit/kit/log" "github.com/go-kit/kit/log/level" "github.com/kolide/kit/fsutil" + "github.com/kolide/launcher/pkg/backoff" "github.com/kolide/launcher/pkg/contexts/ctxlog" "github.com/theupdateframework/notary/client" @@ -461,9 +462,12 @@ func bootstrapFromNotary(notaryConfigDir, remoteServerURL, localRepo, gun string return fmt.Errorf("create an instance of the TUF repository: %w", err) } - if _, err := repo.GetAllTargetMetadataByName(""); err != nil { - return fmt.Errorf("getting all target metadata: %w", err) - } + backoff.WaitFor(func() error { + if _, err := repo.GetAllTargetMetadataByName(""); err != nil { + return fmt.Errorf("getting all target metadata: %w", err) + } + return nil + }, 5*time.Minute, 30*time.Second) // Stage TUF metadata and create bindata from it so it can be distributed as part of the Launcher executable source := filepath.Join(notaryConfigDir, "tuf", gun, "metadata")