util: check for localhost for plainhttp
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>v0.7
parent
be3635e8cb
commit
e86374886a
|
@ -43,7 +43,7 @@ type GRPCConfig struct {
|
|||
|
||||
type RegistryConfig struct {
|
||||
Mirrors []string `toml:"mirrors"`
|
||||
PlainHTTP bool `toml:"http"`
|
||||
PlainHTTP *bool `toml:"http"`
|
||||
}
|
||||
|
||||
type TLSConfig struct {
|
||||
|
|
|
@ -101,7 +101,7 @@ searchDomains=["example.com"]
|
|||
require.Equal(t, 1, len(cfg.Workers.Containerd.GCPolicy[0].Filters))
|
||||
require.Equal(t, 0, len(cfg.Workers.Containerd.GCPolicy[1].Filters))
|
||||
|
||||
require.Equal(t, cfg.Registries["docker.io"].PlainHTTP, true)
|
||||
require.Equal(t, *cfg.Registries["docker.io"].PlainHTTP, true)
|
||||
require.Equal(t, cfg.Registries["docker.io"].Mirrors[0], "hub.docker.io")
|
||||
|
||||
require.NotNil(t, cfg.DNS)
|
||||
|
|
|
@ -2,6 +2,7 @@ package resolver
|
|||
|
||||
import (
|
||||
"math/rand"
|
||||
"strings"
|
||||
|
||||
"github.com/containerd/containerd/remotes/docker"
|
||||
"github.com/docker/distribution/reference"
|
||||
|
@ -10,7 +11,7 @@ import (
|
|||
|
||||
type RegistryConf struct {
|
||||
Mirrors []string
|
||||
PlainHTTP bool
|
||||
PlainHTTP *bool
|
||||
}
|
||||
|
||||
type ResolveOptionsFunc func(string) docker.ResolverOptions
|
||||
|
@ -32,13 +33,21 @@ func NewResolveOptionsFunc(m map[string]RegistryConf) ResolveOptionsFunc {
|
|||
return def
|
||||
}
|
||||
|
||||
var mirrorHost string
|
||||
if len(c.Mirrors) > 0 {
|
||||
mirrorHost = c.Mirrors[rand.Intn(len(c.Mirrors))]
|
||||
def.Host = func(string) (string, error) {
|
||||
return c.Mirrors[rand.Intn(len(c.Mirrors))], nil
|
||||
return mirrorHost, nil
|
||||
}
|
||||
}
|
||||
|
||||
def.PlainHTTP = c.PlainHTTP
|
||||
if c.PlainHTTP != nil {
|
||||
def.PlainHTTP = *c.PlainHTTP
|
||||
} else {
|
||||
if mirrorHost == "localhost" || strings.HasPrefix(mirrorHost, "localhost:") {
|
||||
def.PlainHTTP = true
|
||||
}
|
||||
}
|
||||
|
||||
return def
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue