Skip to content

Commit 5d78895

Browse files
committed
feat: expose more regclient options
Signed-off-by: Łukasz Jakimczuk <ljakimczuk@gmail.com>
1 parent b740a6f commit 5d78895

2 files changed

Lines changed: 39 additions & 14 deletions

File tree

pkg/extensions/config/sync/config.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,20 @@ type Config struct {
2323
}
2424

2525
type RegistryConfig struct {
26-
URLs []string
27-
PollInterval time.Duration
28-
Content []Content
29-
TLSVerify *bool
30-
OnDemand bool
31-
CertDir string
32-
MaxRetries *int
33-
RetryDelay *time.Duration
34-
OnlySigned *bool
35-
CredentialHelper string
36-
PreserveDigest bool // sync without converting
26+
URLs []string
27+
PollInterval time.Duration
28+
Content []Content
29+
TLSVerify *bool
30+
OnDemand bool
31+
CertDir string
32+
MaxRetries *int
33+
RetryDelay *time.Duration
34+
OnlySigned *bool
35+
CredentialHelper string
36+
PreserveDigest bool // sync without converting
37+
ClientLogs bool // creates regclient log/slog logger
38+
ClientLogsLevel string // defines regclient log/slog logger level
39+
ConcurrentRequests int64 // reqclient active requests
3740
}
3841

3942
type Content struct {

pkg/extensions/sync/service.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import (
77
"context"
88
"errors"
99
"fmt"
10+
"log/slog"
1011
"net/url"
12+
"os"
1113
"strconv"
1214
"strings"
1315
"sync"
@@ -146,7 +148,7 @@ func (service *BaseService) init() error {
146148

147149
client, hosts, err := newClient(service.config, service.credentials)
148150
if err != nil {
149-
service.log.Err(err).Msg("failed to parse sync config urls")
151+
service.log.Err(err).Msg("failed to create registry client")
150152

151153
return err
152154
}
@@ -804,6 +806,7 @@ func newClient(opts syncconf.RegistryConfig, credentials syncconf.CredentialsFil
804806
hostConfig = *host
805807
}
806808

809+
hostConfig.ReqConcurrent = opts.ConcurrentRequests
807810
hostConfig.Name = mainHost
808811
hostConfig.Hostname = mainHost
809812
hostConfig.Mirrors = mirrorsHosts
@@ -870,12 +873,31 @@ func newClient(opts syncconf.RegistryConfig, credentials syncconf.CredentialsFil
870873
regOpts = append(regOpts, reg.WithDelay(*opts.RetryDelay, *opts.RetryDelay))
871874
}
872875

873-
client := regclient.New(
876+
clientOpts := []regclient.Opt{
874877
regclient.WithDockerCerts(),
875878
regclient.WithDockerCreds(),
876879
regclient.WithRegOpts(regOpts...),
877880
regclient.WithConfigHost(hostConfigOpts...),
878-
)
881+
}
882+
883+
if opts.ClientLogs {
884+
ho := &slog.HandlerOptions{AddSource: true}
885+
886+
if opts.ClientLogsLevel != "" {
887+
lvl := slog.Level(0)
888+
889+
err = lvl.UnmarshalText([]byte(opts.ClientLogsLevel))
890+
if err != nil {
891+
return nil, nil, err
892+
}
893+
894+
ho.Level = lvl
895+
}
896+
897+
clientOpts = append(clientOpts, regclient.WithSlog(slog.New(slog.NewJSONHandler(os.Stdout, ho))))
898+
}
899+
900+
client := regclient.New(clientOpts...)
879901

880902
return client, hostConfigOpts, nil
881903
}

0 commit comments

Comments
 (0)