Fix wildcard entry upstream fallback

Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
pull/9746/head
Brad Davidson 9 months ago committed by Brad Davidson
parent 31ee8501ea
commit aa3a18ba9b

@ -92,8 +92,10 @@ func getHostConfigs(registry *registries.Registry, noDefaultEndpoint bool, mirro
logrus.Errorf("Failed to generate config for registry %s: %v", host, err) logrus.Errorf("Failed to generate config for registry %s: %v", host, err)
continue continue
} else { } else {
if host == "*" || noDefaultEndpoint { if noDefaultEndpoint {
c.Default = nil c.Default = nil
} else if host == "*" {
c.Default = &templates.RegistryEndpoint{URL: &url.URL{}}
} }
config = *c config = *c
} }

@ -1192,6 +1192,16 @@ func Test_UnitGetHostConfigs(t *testing.T) {
}, },
}, },
}, },
{
name: "wildcard mirror endpoint - no endpoints",
args: args{
registryContent: `
mirrors:
"*":
`,
},
want: HostConfigs{},
},
{ {
name: "wildcard mirror endpoint - full URL", name: "wildcard mirror endpoint - full URL",
args: args{ args: args{
@ -1205,6 +1215,9 @@ func Test_UnitGetHostConfigs(t *testing.T) {
want: HostConfigs{ want: HostConfigs{
"_default": templates.HostConfig{ "_default": templates.HostConfig{
Program: "k3s", Program: "k3s",
Default: &templates.RegistryEndpoint{
URL: u(""),
},
Endpoints: []templates.RegistryEndpoint{ Endpoints: []templates.RegistryEndpoint{
{ {
URL: u("https://registry.example.com/v2"), URL: u("https://registry.example.com/v2"),
@ -1227,6 +1240,9 @@ func Test_UnitGetHostConfigs(t *testing.T) {
want: HostConfigs{ want: HostConfigs{
"_default": templates.HostConfig{ "_default": templates.HostConfig{
Program: "k3s", Program: "k3s",
Default: &templates.RegistryEndpoint{
URL: u(""),
},
Endpoints: []templates.RegistryEndpoint{ Endpoints: []templates.RegistryEndpoint{
{ {
URL: u("https://127.0.0.1:6443/v2"), URL: u("https://127.0.0.1:6443/v2"),
@ -1258,6 +1274,53 @@ func Test_UnitGetHostConfigs(t *testing.T) {
}, },
}, },
}, },
{
name: "wildcard mirror endpoint - full URL, embedded registry, no default",
args: args{
noDefaultEndpoint: true,
mirrorAddr: "127.0.0.1:6443",
registryContent: `
mirrors:
"*":
endpoint:
- https://registry.example.com/v2
`,
},
want: HostConfigs{
"_default": templates.HostConfig{
Program: "k3s",
Endpoints: []templates.RegistryEndpoint{
{
URL: u("https://127.0.0.1:6443/v2"),
Config: registries.RegistryConfig{
TLS: &registries.TLSConfig{
CAFile: "server-ca",
KeyFile: "client-key",
CertFile: "client-cert",
},
},
},
{
URL: u("https://registry.example.com/v2"),
},
},
},
"127.0.0.1:6443": templates.HostConfig{
Program: "k3s",
Default: &templates.RegistryEndpoint{
URL: u("https://127.0.0.1:6443/v2"),
Config: registries.RegistryConfig{
TLS: &registries.TLSConfig{
CAFile: "server-ca",
KeyFile: "client-key",
CertFile: "client-cert",
},
},
},
},
},
},
{ {
name: "wildcard config", name: "wildcard config",
args: args{ args: args{

Loading…
Cancel
Save