From 0532c462172e850bfc09a679ef119b85c264d425 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Tue, 10 Feb 2015 07:23:32 -0800 Subject: [PATCH] Add a more detailed error message for potential auth fails in docker pull. --- pkg/credentialprovider/keyring.go | 9 +++++++++ pkg/kubelet/dockertools/docker.go | 16 +++++++++++++++- pkg/kubelet/dockertools/docker_test.go | 21 +++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/pkg/credentialprovider/keyring.go b/pkg/credentialprovider/keyring.go index 6132c04bfa..aa9ebbf82b 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 bbe6b86f0b..060a39bfe6 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: [/]/[: