From 19b71684bb65f594627e378e59cc888ae5ec0fb2 Mon Sep 17 00:00:00 2001 From: Yue Yang Date: Thu, 15 Sep 2022 10:02:34 +0800 Subject: [PATCH 1/5] fix: trim docker.io to prevent always writing to daemon Signed-off-by: Yue Yang --- pkg/minikube/cruntime/docker.go | 11 ++--------- pkg/minikube/download/image.go | 9 ++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index bc2ecab54fd5..b1b8dfcf39b1 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -604,7 +604,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { } preloadedImages := map[string]struct{}{} for _, i := range strings.Split(rr.Stdout.String(), "\n") { - i = trimDockerIO(i) + i = TrimDockerIO(i) preloadedImages[i] = struct{}{} } @@ -612,7 +612,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { // Make sure images == imgs for _, i := range images { - i = trimDockerIO(i) + i = TrimDockerIO(i) if _, ok := preloadedImages[i]; !ok { klog.Infof("%s wasn't preloaded", i) return false @@ -644,13 +644,6 @@ func addDockerIO(name string) string { return reg + "/" + img } -// Remove docker.io prefix since it won't be included in images names -// when we call 'docker images' -func trimDockerIO(name string) string { - name = strings.TrimPrefix(name, "docker.io/") - return name -} - func dockerBoundToContainerd(runner command.Runner) bool { // NOTE: assumes systemd rr, err := runner.RunCmd(exec.Command("sudo", "systemctl", "cat", "docker.service")) diff --git a/pkg/minikube/download/image.go b/pkg/minikube/download/image.go index b3d63297cee4..1ea4efae9d30 100644 --- a/pkg/minikube/download/image.go +++ b/pkg/minikube/download/image.go @@ -69,13 +69,20 @@ func ImageExistsInCache(img string) bool { var checkImageExistsInCache = ImageExistsInCache +// Remove docker.io prefix since it won't be included in images names +// when we call 'docker images' +func TrimDockerIO(name string) string { + name = strings.TrimPrefix(name, "docker.io/") + return name +} + // ImageExistsInDaemon if img exist in local docker daemon func ImageExistsInDaemon(img string) bool { // Check if image exists locally klog.Infof("Checking for %s in local docker daemon", img) cmd := exec.Command("docker", "images", "--format", "{{.Repository}}:{{.Tag}}@{{.Digest}}") if output, err := cmd.Output(); err == nil { - if strings.Contains(string(output), img) { + if strings.Contains(string(output), TrimDockerIO(img)) { klog.Infof("Found %s in local docker daemon, skipping pull", img) return true } From df2db2efd941c1c1ed16399afa8314c2f9c3a803 Mon Sep 17 00:00:00 2001 From: Yue Yang Date: Sat, 17 Sep 2022 10:52:37 +0800 Subject: [PATCH 2/5] fix: ci Signed-off-by: Yue Yang --- pkg/minikube/cruntime/docker.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index b1b8dfcf39b1..44e1cf9aefdb 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -37,7 +37,7 @@ import ( "k8s.io/minikube/pkg/minikube/command" "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/docker" - "k8s.io/minikube/pkg/minikube/download" + download "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/style" "k8s.io/minikube/pkg/minikube/sysinit" ) @@ -604,7 +604,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { } preloadedImages := map[string]struct{}{} for _, i := range strings.Split(rr.Stdout.String(), "\n") { - i = TrimDockerIO(i) + i = download.TrimDockerIO(i) preloadedImages[i] = struct{}{} } @@ -612,7 +612,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { // Make sure images == imgs for _, i := range images { - i = TrimDockerIO(i) + i = download.TrimDockerIO(i) if _, ok := preloadedImages[i]; !ok { klog.Infof("%s wasn't preloaded", i) return false From b64f5160c8f6e7e7cba4bdc5b90d9175513ec57f Mon Sep 17 00:00:00 2001 From: Yue Yang Date: Tue, 20 Sep 2022 11:53:06 +0800 Subject: [PATCH 3/5] fix: trim the alias Signed-off-by: Yue Yang --- pkg/minikube/cruntime/docker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 44e1cf9aefdb..71c44c82f1d5 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -37,7 +37,7 @@ import ( "k8s.io/minikube/pkg/minikube/command" "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/docker" - download "k8s.io/minikube/pkg/minikube/download" + "k8s.io/minikube/pkg/minikube/download" "k8s.io/minikube/pkg/minikube/style" "k8s.io/minikube/pkg/minikube/sysinit" ) From 001a7075850d51d2a4f3ae3e2fc0c3b20b9e2f58 Mon Sep 17 00:00:00 2001 From: Yue Yang Date: Tue, 25 Oct 2022 15:35:03 +0800 Subject: [PATCH 4/5] chore: simplify func return Signed-off-by: Yue Yang --- pkg/minikube/download/image.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/minikube/download/image.go b/pkg/minikube/download/image.go index 1ea4efae9d30..5ac9046517b5 100644 --- a/pkg/minikube/download/image.go +++ b/pkg/minikube/download/image.go @@ -69,11 +69,10 @@ func ImageExistsInCache(img string) bool { var checkImageExistsInCache = ImageExistsInCache -// Remove docker.io prefix since it won't be included in images names -// when we call 'docker images' +// Remove docker.io prefix since it won't be included in image names +// when we call `docker images`. func TrimDockerIO(name string) string { - name = strings.TrimPrefix(name, "docker.io/") - return name + return strings.TrimPrefix(name, "docker.io/") } // ImageExistsInDaemon if img exist in local docker daemon From 5dfb368b1e05cc59a5a3533b7608973265a62e27 Mon Sep 17 00:00:00 2001 From: Yue Yang Date: Wed, 26 Oct 2022 11:00:19 +0800 Subject: [PATCH 5/5] chore: move trim func to image package Signed-off-by: Yue Yang --- pkg/minikube/cruntime/docker.go | 5 +++-- pkg/minikube/download/image.go | 9 ++------- pkg/minikube/image/image.go | 6 ++++++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index 71c44c82f1d5..24256f36a4e4 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -38,6 +38,7 @@ import ( "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/docker" "k8s.io/minikube/pkg/minikube/download" + "k8s.io/minikube/pkg/minikube/image" "k8s.io/minikube/pkg/minikube/style" "k8s.io/minikube/pkg/minikube/sysinit" ) @@ -604,7 +605,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { } preloadedImages := map[string]struct{}{} for _, i := range strings.Split(rr.Stdout.String(), "\n") { - i = download.TrimDockerIO(i) + i = image.TrimDockerIO(i) preloadedImages[i] = struct{}{} } @@ -612,7 +613,7 @@ func dockerImagesPreloaded(runner command.Runner, images []string) bool { // Make sure images == imgs for _, i := range images { - i = download.TrimDockerIO(i) + i = image.TrimDockerIO(i) if _, ok := preloadedImages[i]; !ok { klog.Infof("%s wasn't preloaded", i) return false diff --git a/pkg/minikube/download/image.go b/pkg/minikube/download/image.go index 5ac9046517b5..254a98ff1658 100644 --- a/pkg/minikube/download/image.go +++ b/pkg/minikube/download/image.go @@ -34,6 +34,7 @@ import ( "github.com/pkg/errors" "k8s.io/klog/v2" "k8s.io/minikube/pkg/minikube/detect" + "k8s.io/minikube/pkg/minikube/image" "k8s.io/minikube/pkg/minikube/localpath" ) @@ -69,19 +70,13 @@ func ImageExistsInCache(img string) bool { var checkImageExistsInCache = ImageExistsInCache -// Remove docker.io prefix since it won't be included in image names -// when we call `docker images`. -func TrimDockerIO(name string) string { - return strings.TrimPrefix(name, "docker.io/") -} - // ImageExistsInDaemon if img exist in local docker daemon func ImageExistsInDaemon(img string) bool { // Check if image exists locally klog.Infof("Checking for %s in local docker daemon", img) cmd := exec.Command("docker", "images", "--format", "{{.Repository}}:{{.Tag}}@{{.Digest}}") if output, err := cmd.Output(); err == nil { - if strings.Contains(string(output), TrimDockerIO(img)) { + if strings.Contains(string(output), image.TrimDockerIO(img)) { klog.Infof("Found %s in local docker daemon, skipping pull", img) return true } diff --git a/pkg/minikube/image/image.go b/pkg/minikube/image/image.go index 6214b533864c..0db355616488 100644 --- a/pkg/minikube/image/image.go +++ b/pkg/minikube/image/image.go @@ -319,3 +319,9 @@ func normalizeTagName(image string) string { } return base + ":" + tag } + +// Remove docker.io prefix since it won't be included in image names +// when we call `docker images`. +func TrimDockerIO(name string) string { + return strings.TrimPrefix(name, "docker.io/") +}