Move exit.Message function so that we aren't exiting from a library
parent
da4833d80a
commit
db23825bfc
|
@ -197,6 +197,9 @@ func runStart(cmd *cobra.Command, args []string) {
|
||||||
machine.MaybeDisplayAdvice(err, ds.Name)
|
machine.MaybeDisplayAdvice(err, ds.Name)
|
||||||
if specified {
|
if specified {
|
||||||
// If the user specified a driver, don't fallback to anything else
|
// If the user specified a driver, don't fallback to anything else
|
||||||
|
if errors.Cause(err) == oci.ErrInsufficientDockerStorage {
|
||||||
|
exit.Message(reason.RsrcInsufficientDockerStorage, "preload extraction failed: \"No space left on device\"")
|
||||||
|
}
|
||||||
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
||||||
} else {
|
} else {
|
||||||
success := false
|
success := false
|
||||||
|
@ -224,6 +227,9 @@ func runStart(cmd *cobra.Command, args []string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !success {
|
if !success {
|
||||||
|
if errors.Cause(err) == oci.ErrInsufficientDockerStorage {
|
||||||
|
exit.Message(reason.RsrcInsufficientDockerStorage, "preload extraction failed: \"No space left on device\"")
|
||||||
|
}
|
||||||
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -248,6 +254,9 @@ func runStart(cmd *cobra.Command, args []string) {
|
||||||
stopProfile(existing.Name)
|
stopProfile(existing.Name)
|
||||||
starter, err = provisionWithDriver(cmd, ds, existing)
|
starter, err = provisionWithDriver(cmd, ds, existing)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Cause(err) == oci.ErrInsufficientDockerStorage {
|
||||||
|
exit.Message(reason.RsrcInsufficientDockerStorage, "preload extraction failed: \"No space left on device\"")
|
||||||
|
}
|
||||||
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
exit.Error(reason.GuestProvision, "error provisioning host", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,8 +37,6 @@ import (
|
||||||
"k8s.io/minikube/pkg/minikube/constants"
|
"k8s.io/minikube/pkg/minikube/constants"
|
||||||
"k8s.io/minikube/pkg/minikube/cruntime"
|
"k8s.io/minikube/pkg/minikube/cruntime"
|
||||||
"k8s.io/minikube/pkg/minikube/download"
|
"k8s.io/minikube/pkg/minikube/download"
|
||||||
"k8s.io/minikube/pkg/minikube/exit"
|
|
||||||
"k8s.io/minikube/pkg/minikube/reason"
|
|
||||||
"k8s.io/minikube/pkg/minikube/sysinit"
|
"k8s.io/minikube/pkg/minikube/sysinit"
|
||||||
"k8s.io/minikube/pkg/util/retry"
|
"k8s.io/minikube/pkg/util/retry"
|
||||||
)
|
)
|
||||||
|
@ -126,6 +124,7 @@ func (d *Driver) Create() error {
|
||||||
|
|
||||||
var waitForPreload sync.WaitGroup
|
var waitForPreload sync.WaitGroup
|
||||||
waitForPreload.Add(1)
|
waitForPreload.Add(1)
|
||||||
|
var pErr error
|
||||||
go func() {
|
go func() {
|
||||||
defer waitForPreload.Done()
|
defer waitForPreload.Done()
|
||||||
// If preload doesn't exist, don't bother extracting tarball to volume
|
// If preload doesn't exist, don't bother extracting tarball to volume
|
||||||
|
@ -137,7 +136,8 @@ func (d *Driver) Create() error {
|
||||||
// Extract preloaded images to container
|
// Extract preloaded images to container
|
||||||
if err := oci.ExtractTarballToVolume(d.NodeConfig.OCIBinary, download.TarballPath(d.NodeConfig.KubernetesVersion, d.NodeConfig.ContainerRuntime), params.Name, d.NodeConfig.ImageDigest); err != nil {
|
if err := oci.ExtractTarballToVolume(d.NodeConfig.OCIBinary, download.TarballPath(d.NodeConfig.KubernetesVersion, d.NodeConfig.ContainerRuntime), params.Name, d.NodeConfig.ImageDigest); err != nil {
|
||||||
if strings.Contains(err.Error(), "No space left on device") {
|
if strings.Contains(err.Error(), "No space left on device") {
|
||||||
exit.Message(reason.RsrcInsufficientDockerStorage, "preload extraction failed: \"No space left on device\"")
|
pErr = oci.ErrInsufficientDockerStorage
|
||||||
|
return
|
||||||
}
|
}
|
||||||
glog.Infof("Unable to extract preloaded tarball to volume: %v", err)
|
glog.Infof("Unable to extract preloaded tarball to volume: %v", err)
|
||||||
} else {
|
} else {
|
||||||
|
@ -154,7 +154,7 @@ func (d *Driver) Create() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
waitForPreload.Wait()
|
waitForPreload.Wait()
|
||||||
return nil
|
return pErr
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepareSSH will generate keys and copy to the container so minikube ssh works
|
// prepareSSH will generate keys and copy to the container so minikube ssh works
|
||||||
|
|
|
@ -45,6 +45,9 @@ var ErrExitedUnexpectedly = errors.New("container exited unexpectedly")
|
||||||
// ErrDaemonInfo is thrown when docker/podman info is failing or not responding
|
// ErrDaemonInfo is thrown when docker/podman info is failing or not responding
|
||||||
var ErrDaemonInfo = errors.New("daemon info not responding")
|
var ErrDaemonInfo = errors.New("daemon info not responding")
|
||||||
|
|
||||||
|
// ErrInsufficientDockerStorage is thrown when there is not more storage for docker
|
||||||
|
var ErrInsufficientDockerStorage = &FailFastError{errors.New("insufficient docker storage, no space left on device")}
|
||||||
|
|
||||||
// LogContainerDebug will print relevant docker/podman infos after a container fails
|
// LogContainerDebug will print relevant docker/podman infos after a container fails
|
||||||
func LogContainerDebug(ociBin string, name string) string {
|
func LogContainerDebug(ociBin string, name string) string {
|
||||||
rr, err := containerInspect(ociBin, name)
|
rr, err := containerInspect(ociBin, name)
|
||||||
|
|
|
@ -383,7 +383,7 @@ func startHost(api libmachine.API, cc *config.ClusterConfig, n *config.Node, del
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, ff := err.(*oci.FailFastError); ff {
|
if err, ff := errors.Cause(err).(*oci.FailFastError); ff {
|
||||||
glog.Infof("will skip retrying to create machine because error is not retriable: %v", err)
|
glog.Infof("will skip retrying to create machine because error is not retriable: %v", err)
|
||||||
return host, exists, err
|
return host, exists, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue