Skip to content

Commit 207cddf

Browse files
grokspawnci-robot
authored andcommitted
exponential retry on name resolution to registries (#1576)
Signed-off-by: Jordan Keister <[email protected]> Upstream-repository: operator-registry Upstream-commit: 19a457eec2514421163624a27c5b6a3b24212365
1 parent a797d7b commit 207cddf

File tree

2 files changed

+40
-20
lines changed
  • staging/operator-registry/pkg/image/containerdregistry
  • vendor/github.com/operator-framework/operator-registry/pkg/image/containerdregistry

2 files changed

+40
-20
lines changed

staging/operator-registry/pkg/image/containerdregistry/registry.go

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,26 @@ func (r *Registry) Pull(ctx context.Context, ref image.Reference) error {
5757
return err
5858
}
5959

60-
name, root, err := resolver.Resolve(ctx, ref.String())
61-
if err != nil {
62-
return fmt.Errorf("error resolving name for image ref %s: %v", ref.String(), err)
60+
retryBackoff := wait.Backoff{
61+
Duration: 1 * time.Second,
62+
Factor: 1.0,
63+
Jitter: 0.1,
64+
Steps: 5,
65+
}
66+
67+
var name string
68+
var root ocispec.Descriptor
69+
if err := retry.OnError(retryBackoff,
70+
func(pullErr error) bool {
71+
r.log.Warnf("Error resolving registry %q: %v. Retrying", ref.String(), pullErr)
72+
return true
73+
},
74+
func() error {
75+
name, root, err = resolver.Resolve(ctx, ref.String())
76+
return err
77+
},
78+
); err != nil {
79+
return fmt.Errorf("error resolving remote name %s: %v", ref.String(), err)
6380
}
6481
r.log.Debugf("resolved name: %s", name)
6582

@@ -68,13 +85,6 @@ func (r *Registry) Pull(ctx context.Context, ref image.Reference) error {
6885
return err
6986
}
7087

71-
retryBackoff := wait.Backoff{
72-
Duration: 1 * time.Second,
73-
Factor: 1.0,
74-
Jitter: 0.1,
75-
Steps: 5,
76-
}
77-
7888
if err := retry.OnError(retryBackoff,
7989
func(pullErr error) bool {
8090
if nonRetriablePullError.MatchString(pullErr.Error()) {

vendor/github.com/operator-framework/operator-registry/pkg/image/containerdregistry/registry.go

Lines changed: 20 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)