diff --git a/pkg/drivers/kic/oci/volumes.go b/pkg/drivers/kic/oci/volumes.go index 54a1d3da836c04a9d835a05c76270b9a688bad06..342fe12b33d57a4aaeb786c2a9a7d3a96bfbb179 100644 --- a/pkg/drivers/kic/oci/volumes.go +++ b/pkg/drivers/kic/oci/volumes.go @@ -96,7 +96,7 @@ func CreatePreloadedImagesVolume(k8sVersion, baseImage, profile string) (string, if err := PointToHostDockerDaemon(); err != nil { return "", errors.Wrap(err, "point host docker-daemon") } - volumeName := fmt.Sprintf("k8s-%s-%s", k8sVersion, profile) + volumeName := preloadedVolumeName(k8sVersion, profile) if dockerVolumeExists(volumeName) { return volumeName, nil } @@ -172,3 +172,31 @@ func deleteDockerVolume(name string) error { } return nil } + +func preloadedVolumeName(k8sVersion, profile string) string { + return fmt.Sprintf("k8s-%s-%s", k8sVersion, profile) +} + +// PreloadedVolumeAttached returns true if the preloaded volume is attached +// to the running profile +func PreloadedVolumeAttached(k8sVersion, profile string) bool { + glog.Infof("Checking if preloaded volume is attached to %s", profile) + if err := PointToHostDockerDaemon(); err != nil { + glog.Infof("error pointing host to docker daemon: %v", err) + return false + } + volumeName := preloadedVolumeName(k8sVersion, profile) + cmd := exec.Command(Docker, "inspect", "-f", "{{range .Mounts}} {{.Name}} {{end}}", profile) + out, err := cmd.CombinedOutput() + if err != nil { + glog.Infof("error inspecting mounted volumes: %v", err) + return false + } + vols := strings.Split(string(out), " ") + for _, v := range vols { + if strings.TrimSpace(v) == volumeName { + return true + } + } + return false +} diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 091ed4a72073e1a154bcd6917336d451f2fe8659..7fb3e76c0a1f34c331923f4f086bb98dc56dd772 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -52,7 +52,6 @@ import ( "k8s.io/minikube/pkg/minikube/driver" "k8s.io/minikube/pkg/minikube/machine" "k8s.io/minikube/pkg/minikube/out" - "k8s.io/minikube/pkg/minikube/preload" "k8s.io/minikube/pkg/minikube/vmpath" "k8s.io/minikube/pkg/util/retry" ) @@ -438,7 +437,7 @@ func (k *Bootstrapper) UpdateCluster(cfg config.MachineConfig) error { } // Skip transfer if using preloaded kic volume - skipTransfer := driver.IsKIC(cfg.Driver) && preload.UsingPreloadedVolume(cfg.KubernetesConfig.KubernetesVersion) + skipTransfer := oci.PreloadedVolumeAttached(cfg.KubernetesConfig.KubernetesVersion, viper.GetString(config.MachineProfile)) if !skipTransfer { if err := bsutil.TransferBinaries(cfg.KubernetesConfig, k.c); err != nil { return errors.Wrap(err, "downloading binaries") diff --git a/pkg/minikube/preload/preload.go b/pkg/minikube/preload/preload.go index 885273667b4a43205af36713c9cd009a3060b8e5..85181be1c4b6c13e08d795625ecb004d5ffd0b0a 100644 --- a/pkg/minikube/preload/preload.go +++ b/pkg/minikube/preload/preload.go @@ -121,14 +121,6 @@ func saveChecksumFile(k8sVersion string) error { return ioutil.WriteFile(checksumFilepath(k8sVersion), checksum, 0644) } -func cachedTarballExists(k8sVersion string) bool { - _, err := os.Stat(TarballFilepath(k8sVersion)) - if err != nil { - return false - } - return false -} - // verifyChecksum returns true if the checksum of the local binary matches // the checksum of the remote binary func verifyChecksum(k8sVersion string) error { @@ -150,7 +142,3 @@ func verifyChecksum(k8sVersion string) error { } return nil } - -func UsingPreloadedVolume(k8sVersion string) bool { - return true -}