From cc9f41c6d3034713f51ee82060c274bcda32ff21 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Sat, 13 Aug 2016 23:09:44 -0400 Subject: [PATCH] Fix image verification when hostname is present in image Deal better with the situation where a image name contains a hostname as well. Fixes #30580 --- pkg/kubelet/dockertools/docker.go | 15 ++++++++++++--- pkg/kubelet/dockertools/docker_test.go | 10 ++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/pkg/kubelet/dockertools/docker.go b/pkg/kubelet/dockertools/docker.go index d9785dcb899..a552f792a72 100644 --- a/pkg/kubelet/dockertools/docker.go +++ b/pkg/kubelet/dockertools/docker.go @@ -167,11 +167,20 @@ func matchImageTagOrSHA(inspected dockertypes.ImageInspect, image string) bool { return true } if isTagged { + hostname, _ := dockerref.SplitHostname(named) // Check the RepoTags for an exact match for _, tag := range inspected.RepoTags { - if tag == image { - // We found a specific tag that we were looking for - return true + // Deal with image with hostname specified + if len(hostname) > 0 { + if strings.HasSuffix(image, tag) { + return true + } + + } else { + if tag == image { + // We found a specific tag that we were looking for + return true + } } } } diff --git a/pkg/kubelet/dockertools/docker_test.go b/pkg/kubelet/dockertools/docker_test.go index 5fb9218583b..6c90894c74a 100644 --- a/pkg/kubelet/dockertools/docker_test.go +++ b/pkg/kubelet/dockertools/docker_test.go @@ -173,6 +173,16 @@ func TestMatchImageTagOrSHA(t *testing.T) { Image: "ubuntu:latest", Output: false, }, + { + Inspected: dockertypes.ImageInspect{RepoTags: []string{"colemickens/hyperkube-amd64:217.9beff63"}}, + Image: "colemickens/hyperkube-amd64:217.9beff63", + Output: true, + }, + { + Inspected: dockertypes.ImageInspect{RepoTags: []string{"colemickens/hyperkube-amd64:217.9beff63"}}, + Image: "docker.io/colemickens/hyperkube-amd64:217.9beff63", + Output: true, + }, { Inspected: dockertypes.ImageInspect{ ID: "sha256:2208f7a29005d226d1ee33a63e33af1f47af6156c740d7d23c7948e8d282d53d",