From f7c14b480530af06f7ea63f22ce1eb3701199a51 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 14 Nov 2020 16:41:59 +0100 Subject: [PATCH] Fix registry timeout context (#221) Image closer not required while fetching tags --- docs/config/regopts.md | 6 +++--- internal/config/config_test.go | 4 ++-- internal/model/regopts.go | 4 ++-- pkg/registry/tags.go | 8 +------- 4 files changed, 8 insertions(+), 14 deletions(-) diff --git a/docs/config/regopts.md b/docs/config/regopts.md index e842a47d..519abd43 100644 --- a/docs/config/regopts.md +++ b/docs/config/regopts.md @@ -9,7 +9,7 @@ regopts: - name: "myregistry" username: fii password: bor - timeout: 5s + timeout: 30s - name: "docker.io" selector: image username: foo @@ -128,13 +128,13 @@ Use content of secret file as registry password if `password` not defined. ### `timeout` -Timeout is the maximum amount of time for the TCP connection to establish. (default `10s`) +Timeout is the maximum amount of time for the TCP connection to establish. (default `0` ; no timeout) !!! example "Config file" ```yaml regopts: - name: "myregistry" - timeout: 10s + timeout: 30s ``` !!! abstract "Environment variables" diff --git a/internal/config/config_test.go b/internal/config/config_test.go index ea064a09..46458486 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -179,7 +179,7 @@ func TestLoadFile(t *testing.T) { Username: "foo", Password: "bar", InsecureTLS: utl.NewFalse(), - Timeout: utl.NewDuration(10 * time.Second), + Timeout: utl.NewDuration(0), }, { Name: "docker.io/crazymax", @@ -187,7 +187,7 @@ func TestLoadFile(t *testing.T) { UsernameFile: "./fixtures/run_secrets_username", PasswordFile: "./fixtures/run_secrets_password", InsecureTLS: utl.NewFalse(), - Timeout: utl.NewDuration(10 * time.Second), + Timeout: utl.NewDuration(0), }, }, Providers: &model.Providers{ diff --git a/internal/model/regopts.go b/internal/model/regopts.go index 190f01f1..ee8fd65a 100644 --- a/internal/model/regopts.go +++ b/internal/model/regopts.go @@ -21,7 +21,7 @@ type RegOpt struct { Password string `yaml:"password,omitempty" json:"password,omitempty" validate:"omitempty"` PasswordFile string `yaml:"passwordFile,omitempty" json:"passwordFile,omitempty" validate:"omitempty,file"` InsecureTLS *bool `yaml:"insecureTLS,omitempty" json:"insecureTLS,omitempty" validate:"required"` - Timeout *time.Duration `yaml:"timeout,omitempty" json:"timeout,omitempty" validate:"required"` + Timeout *time.Duration `yaml:"timeout,omitempty" json:"timeout,omitempty"` } // RegOpt selector constants @@ -44,7 +44,7 @@ func (s *RegOpt) GetDefaults() *RegOpt { func (s *RegOpt) SetDefaults() { s.Selector = RegOptSelectorName s.InsecureTLS = utl.NewFalse() - s.Timeout = utl.NewDuration(10 * time.Second) + s.Timeout = utl.NewDuration(0) } // Select returns a registry based on its selector diff --git a/pkg/registry/tags.go b/pkg/registry/tags.go index 418c2f52..b18c97ad 100644 --- a/pkg/registry/tags.go +++ b/pkg/registry/tags.go @@ -32,13 +32,7 @@ func (c *Client) Tags(opts TagsOptions) (*Tags, error) { return nil, errors.Wrap(err, "Cannot parse reference") } - imgCloser, err := imgRef.NewImage(ctx, c.sysCtx) - if err != nil { - return nil, errors.Wrap(err, "Cannot create image closer") - } - defer imgCloser.Close() - - tags, err := docker.GetRepositoryTags(ctx, c.sysCtx, imgCloser.Reference()) + tags, err := docker.GetRepositoryTags(ctx, c.sysCtx, imgRef) if err != nil { return nil, err }