diff --git a/pkg/credentialprovider/keyring.go b/pkg/credentialprovider/keyring.go index 6132c04bfa0..aa9ebbf82be 100644 --- a/pkg/credentialprovider/keyring.go +++ b/pkg/credentialprovider/keyring.go @@ -143,3 +143,12 @@ func (dk *lazyDockerKeyring) Lookup(image string) (docker.AuthConfiguration, boo return keyring.Lookup(image) } + +type FakeKeyring struct { + auth docker.AuthConfiguration + ok bool +} + +func (f *FakeKeyring) Lookup(image string) (docker.AuthConfiguration, bool) { + return f.auth, f.ok +} diff --git a/pkg/kubelet/dockertools/docker.go b/pkg/kubelet/dockertools/docker.go index ba397f0fbfa..ad4ea20c508 100644 --- a/pkg/kubelet/dockertools/docker.go +++ b/pkg/kubelet/dockertools/docker.go @@ -222,7 +222,21 @@ func (p dockerPuller) Pull(image string) error { glog.V(1).Infof("Pulling image %s without credentials", image) } - return p.client.PullImage(opts, creds) + err := p.client.PullImage(opts, creds) + // If there was no error, or we had credentials, just return the error. + if err == nil || ok { + return err + } + // Image spec: [/]/[: