diff --git a/go.mod b/go.mod index 3bf3145d4d..fe64ef5064 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.12 require ( github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect + github.com/Microsoft/go-winio v0.4.13 // indirect github.com/Parallels/docker-machine-parallels v1.3.0 github.com/Sirupsen/logrus v0.0.0-20170822132746-89742aefa4b2 // indirect github.com/blang/semver v3.5.0+incompatible @@ -11,7 +12,9 @@ require ( github.com/cloudfoundry-attic/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 github.com/cloudfoundry/jibber_jabber v0.0.0-20151120183258-bcc4c8345a21 // indirect github.com/cpuguy83/go-md2man v1.0.4 // indirect - github.com/docker/docker v1.13.1 // indirect + github.com/docker/distribution v2.7.1+incompatible // indirect + github.com/docker/docker v0.0.0-20180531152204-71cd53e4a197 // indirect + github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.0.0-20170127094116-9e638d38cf69 github.com/docker/machine v0.16.1 github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f @@ -24,7 +27,7 @@ require ( github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 // indirect github.com/google/btree v1.0.0 // indirect github.com/google/go-cmp v0.2.0 - github.com/google/go-containerregistry v0.0.0-20190318164241-019cdfc6adf9 + github.com/google/go-containerregistry v0.0.0-20190729175742-ef12d49c8daf github.com/google/go-github/v25 v25.0.2 github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367 // indirect github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d // indirect @@ -60,13 +63,15 @@ require ( github.com/olekukonko/tablewriter v0.0.0-20160923125401-bdcc175572fd github.com/onsi/ginkgo v1.8.0 // indirect github.com/onsi/gomega v1.5.0 // indirect + github.com/opencontainers/go-digest v1.0.0-rc1 // indirect + github.com/opencontainers/image-spec v1.0.1 // indirect github.com/pborman/uuid v0.0.0-20150603214016-ca53cad383ca github.com/pelletier/go-buffruneio v0.1.0 // indirect github.com/pelletier/go-toml v0.0.0-20160822122712-0049ab3dc4c4 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 github.com/pkg/browser v0.0.0-20160118053552-9302be274faa - github.com/pkg/errors v0.8.0 + github.com/pkg/errors v0.8.1 github.com/pkg/profile v0.0.0-20161223203901-3a8809bd8a80 github.com/pkg/sftp v0.0.0-20160930220758-4d0e916071f6 // indirect github.com/pmezard/go-difflib v1.0.0 @@ -74,7 +79,6 @@ require ( github.com/russross/blackfriday v0.0.0-20151117072312-300106c228d5 // indirect github.com/samalba/dockerclient v0.0.0-20160414174713-91d7393ff859 // indirect github.com/shurcooL/sanitized_anchor_name v0.0.0-20151028001915-10ef21a441db // indirect - github.com/sirupsen/logrus v1.4.1 // indirect github.com/spf13/afero v0.0.0-20160816080757-b28a7effac97 // indirect github.com/spf13/cast v0.0.0-20160730092037-e31f36ffc91a // indirect github.com/spf13/cobra v0.0.0-20180228053838-6644d46b81fa diff --git a/go.sum b/go.sum index fb9399dd7a..beb960a809 100644 --- a/go.sum +++ b/go.sum @@ -1,6 +1,8 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Microsoft/go-winio v0.4.13 h1:Hmi80lzZuI/CaYmlJp/b+FjZdRZhKu9c2mDVqKlLWVs= +github.com/Microsoft/go-winio v0.4.13/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Parallels/docker-machine-parallels v1.3.0 h1:RG1fyf3v1GwXMCeHRiZkB4tL9phFZEv6ixcvRZ1raN8= github.com/Parallels/docker-machine-parallels v1.3.0/go.mod h1:HCOMm3Hulq/xuEVQMyZOuQlA+dSZpFY5kdCTZWjMVis= github.com/Sirupsen/logrus v0.0.0-20170822132746-89742aefa4b2 h1:k1A7eIeUk6rnX2yuagwljW/pDezkK8oSpvPumT9zdZY= @@ -20,8 +22,14 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v0.0.0-20180531152204-71cd53e4a197 h1:raQhUHOMIAZAWHmo3hLEwoIy0aVkKb2uxZdWw/Up+HI= +github.com/docker/docker v0.0.0-20180531152204-71cd53e4a197/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v1.13.1 h1:IkZjBSIc8hBjLpqeAbeE5mca5mNgeatLHBy3GO78BWo= github.com/docker/docker v1.13.1/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.0.0-20170127094116-9e638d38cf69 h1:N4WAsrRIb+4U1yIwJO3FMrLnrr61ael894nygpViQTU= github.com/docker/go-units v0.0.0-20170127094116-9e638d38cf69/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/machine v0.16.1 h1:zrgroZounGVkxLmBqMyc1uT2GgapXVjIWHCfBf0udrA= @@ -52,6 +60,8 @@ github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-containerregistry v0.0.0-20190318164241-019cdfc6adf9 h1:YVdfjqpMrLPm95Jc5JBFaEeGoPfhFxr43VW/UHQ2NVo= github.com/google/go-containerregistry v0.0.0-20190318164241-019cdfc6adf9/go.mod h1:yZAFP63pRshzrEYLXLGPmUt0Ay+2zdjmMN1loCnRLUk= +github.com/google/go-containerregistry v0.0.0-20190729175742-ef12d49c8daf h1:Wl/OmLiz1KZOQiAYUcttxkW01NbwzUGWy+whD7R58IQ= +github.com/google/go-containerregistry v0.0.0-20190729175742-ef12d49c8daf/go.mod h1:yZAFP63pRshzrEYLXLGPmUt0Ay+2zdjmMN1loCnRLUk= github.com/google/go-github/v25 v25.0.2 h1:MqXE7nOlIF91NJ/PXAcvS2dC+XXCDbY7RvJzjyEPAoU= github.com/google/go-github/v25 v25.0.2/go.mod h1:6z5pC69qHtrPJ0sXPsj4BLnd82b+r6sLB7qcBoRZqpw= github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= @@ -134,6 +144,10 @@ github.com/onsi/ginkgo v1.8.0 h1:VkHVNpR4iVnU8XQR6DBm8BqYjN7CRzw+xKUbVVbbW9w= github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/pborman/uuid v0.0.0-20150603214016-ca53cad383ca h1:dKRMHfduZ/ZqOHuYGk/0kkTIUbnyorkAfzLOp6Ts8pU= github.com/pborman/uuid v0.0.0-20150603214016-ca53cad383ca/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pelletier/go-buffruneio v0.1.0 h1:ig6N9Cg71k/P+UUbhwdOFtJWz+qa8/3by7AzMprMWBM= @@ -146,8 +160,8 @@ github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoU github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= github.com/pkg/browser v0.0.0-20160118053552-9302be274faa h1:od00Tr1U7+cLVtc+RNFmR53spHUF98Ziu33S8UIQnt0= github.com/pkg/browser v0.0.0-20160118053552-9302be274faa/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v0.0.0-20161223203901-3a8809bd8a80 h1:DQFOykp5w+HOykOMzd2yOX5P6ty58Ggiu2rthHgcNQg= github.com/pkg/profile v0.0.0-20161223203901-3a8809bd8a80/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pkg/sftp v0.0.0-20160930220758-4d0e916071f6 h1:V8AT/I4KmIDRfObq0yBUvbD4DeaYmQY9GhC5sKl24Mo= diff --git a/pkg/minikube/machine/cache_images.go b/pkg/minikube/machine/cache_images.go index 3456e2270c..fb9ee907b2 100644 --- a/pkg/minikube/machine/cache_images.go +++ b/pkg/minikube/machine/cache_images.go @@ -29,6 +29,8 @@ import ( "github.com/golang/glog" "github.com/google/go-containerregistry/pkg/authn" "github.com/google/go-containerregistry/pkg/name" + v1 "github.com/google/go-containerregistry/pkg/v1" + "github.com/google/go-containerregistry/pkg/v1/daemon" "github.com/google/go-containerregistry/pkg/v1/remote" "github.com/google/go-containerregistry/pkg/v1/tarball" "github.com/pkg/errors" @@ -302,9 +304,9 @@ func CacheImage(image, dst string) error { return errors.Wrap(err, "creating docker image name") } - img, err := remote.Image(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain)) + img, err := retrieveImage(ref) if err != nil { - return errors.Wrap(err, "fetching remote image") + return errors.Wrap(err, "fetching image") } glog.Infoln("OPENING: ", dstPath) @@ -326,3 +328,12 @@ func CacheImage(image, dst string) error { } return nil } + +func retrieveImage(ref name.Reference) (v1.Image, error) { + img, err := daemon.Image(ref) + if err == nil { + glog.Infof("found %s locally; caching", ref.Name()) + return img, err + } + return remote.Image(ref, remote.WithAuthFromKeychain(authn.DefaultKeychain)) +} diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index 73ac3ff958..d5c9374b3c 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -66,8 +66,8 @@ func TestFunctionalContainerd(t *testing.T) { output := r.RunCommand("cache list", true) t.Log("Cache list:", string(output)) - r.RunCommand("cache add gcr.io/k8s-minikube/gvisor-addon:latest", true) r.Start("--container-runtime=containerd", "--docker-opt containerd=/var/run/containerd/containerd.sock") + r.RunCommand("cache add gcr.io/k8s-minikube/gvisor-addon:latest", true) t.Run("Gvisor", testGvisor) t.Run("GvisorRestart", testGvisorRestart)