skip transferring binaries and transferring imagse if using preloaded volume
parent
b0f685c072
commit
5ac8520ab8
|
@ -95,9 +95,8 @@ func (d *Driver) Create() error {
|
|||
if err != nil {
|
||||
glog.Infof("Unable to create preloaded images volume: %v", err)
|
||||
}
|
||||
glog.Infof("Finished creating preloaded images volume in %d seconds", time.Since(t).Seconds())
|
||||
glog.Infof("Finished creating preloaded images volume in %f seconds", time.Since(t).Seconds())
|
||||
params.PreloadedVolume = volumeName
|
||||
fmt.Println("Setting params.preloadedvolume = ", volumeName)
|
||||
err = oci.CreateContainerNode(params)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "create kic node")
|
||||
|
|
|
@ -131,7 +131,7 @@ func extractTarballToVolume(tarballPath, volumeName, imageName string) error {
|
|||
if err := PointToHostDockerDaemon(); err != nil {
|
||||
return errors.Wrap(err, "point host docker-daemon")
|
||||
}
|
||||
cmd := exec.Command(Docker, "run", "--rm", "--entrypoint", "/bin/bash", "-v", fmt.Sprintf("%s:/preloaded.tar:ro", tarballPath), "-v", fmt.Sprintf("%s:/extractDir", volumeName), imageName, "tar", "-I", "lz4", "-xvf", "/preloaded.tar", "-C", "/extractDir")
|
||||
cmd := exec.Command(Docker, "run", "--rm", "--entrypoint", "/usr/bin/tar", "-v", fmt.Sprintf("%s:/preloaded.tar:ro", tarballPath), "-v", fmt.Sprintf("%s:/extractDir", volumeName), imageName, "-I", "lz4", "-xvf", "/preloaded.tar", "-C", "/extractDir")
|
||||
fmt.Println(cmd.Args)
|
||||
if out, err := cmd.CombinedOutput(); err != nil {
|
||||
return errors.Wrapf(err, "output %s", string(out))
|
||||
|
|
|
@ -46,3 +46,10 @@ func CacheTarball(k8sVersion string) error {
|
|||
glog.Infof("Downloading %s to %s", url, targetFilepath)
|
||||
return download.ToFile(url, targetFilepath, download.FileOptions{Mkdirs: download.MkdirAll})
|
||||
}
|
||||
|
||||
// UsingPreloadedVolume returns true if the preloaded tarball exists
|
||||
func UsingPreloadedVolume(k8sVersion string) bool {
|
||||
path := TarballPath(k8sVersion)
|
||||
_, err := os.Stat(path)
|
||||
return err == nil
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import (
|
|||
kconst "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/minikube/pkg/drivers/kic"
|
||||
"k8s.io/minikube/pkg/drivers/kic/oci"
|
||||
"k8s.io/minikube/pkg/drivers/kic/preload"
|
||||
"k8s.io/minikube/pkg/kapi"
|
||||
"k8s.io/minikube/pkg/minikube/bootstrapper"
|
||||
"k8s.io/minikube/pkg/minikube/bootstrapper/bsutil"
|
||||
|
@ -436,8 +437,12 @@ func (k *Bootstrapper) UpdateCluster(cfg config.MachineConfig) error {
|
|||
glog.Warningf("unable to stop kubelet: %s command: %q output: %q", err, rr.Command(), rr.Output())
|
||||
}
|
||||
|
||||
if err := bsutil.TransferBinaries(cfg.KubernetesConfig, k.c); err != nil {
|
||||
return errors.Wrap(err, "downloading binaries")
|
||||
// Skip transfer if using preloaded kic volume
|
||||
skipTransfer := driver.IsKIC(cfg.Driver) && preload.UsingPreloadedVolume(cfg.KubernetesConfig.KubernetesVersion)
|
||||
if !skipTransfer {
|
||||
if err := bsutil.TransferBinaries(cfg.KubernetesConfig, k.c); err != nil {
|
||||
return errors.Wrap(err, "downloading binaries")
|
||||
}
|
||||
}
|
||||
|
||||
var cniFile []byte
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
"github.com/spf13/viper"
|
||||
"golang.org/x/sync/errgroup"
|
||||
"k8s.io/minikube/pkg/addons"
|
||||
"k8s.io/minikube/pkg/drivers/kic/preload"
|
||||
"k8s.io/minikube/pkg/minikube/config"
|
||||
"k8s.io/minikube/pkg/minikube/driver"
|
||||
"k8s.io/minikube/pkg/minikube/exit"
|
||||
|
@ -34,9 +35,16 @@ import (
|
|||
|
||||
// Start spins up a guest and starts the kubernetes node.
|
||||
func Start(mc config.MachineConfig, n config.Node, primary bool, existingAddons map[string]bool) (*kubeconfig.Settings, error) {
|
||||
k8sVersion := mc.KubernetesConfig.KubernetesVersion
|
||||
driverName := mc.Driver
|
||||
|
||||
// Now that the ISO is downloaded, pull images in the background while the VM boots.
|
||||
var cacheGroup errgroup.Group
|
||||
beginCacheRequiredImages(&cacheGroup, mc.KubernetesConfig.ImageRepository, n.KubernetesVersion)
|
||||
if !preload.UsingPreloadedVolume(k8sVersion) && driver.IsKIC(driverName) {
|
||||
beginCacheRequiredImages(&cacheGroup, mc.KubernetesConfig.ImageRepository, k8sVersion)
|
||||
} else {
|
||||
mc.KubernetesConfig.ShouldLoadCachedImages = false
|
||||
}
|
||||
|
||||
// Abstraction leakage alert: startHost requires the config to be saved, to satistfy pkg/provision/buildroot.
|
||||
// Hence, saveConfig must be called before startHost, and again afterwards when we know the IP.
|
||||
|
@ -44,8 +52,6 @@ func Start(mc config.MachineConfig, n config.Node, primary bool, existingAddons
|
|||
exit.WithError("Failed to save config", err)
|
||||
}
|
||||
|
||||
k8sVersion := mc.KubernetesConfig.KubernetesVersion
|
||||
driverName := mc.Driver
|
||||
// exits here in case of --download-only option.
|
||||
handleDownloadOnly(&cacheGroup, k8sVersion, driverName)
|
||||
mRunner, preExists, machineAPI, host := startMachine(&mc, &n)
|
||||
|
|
Loading…
Reference in New Issue