Detect whether k8s needs to be stopped.

pull/13072/head
klaases 2021-12-03 12:35:34 -08:00
parent c6fc55aa98
commit f3186d07d8
2 changed files with 26 additions and 26 deletions

View File

@ -297,7 +297,8 @@ func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *
// If Kubernetes is running, and --no-kubernetes is specified, stop.
var stopk8s bool
if existing != nil && viper.GetBool(noKubernetes) {
if existing != nil && existing.KubernetesConfig.KubernetesVersion != constants.NoKubernetesVersion && viper.GetBool(noKubernetes) {
klog.Infof("ABC1 existing.KubernetesConfig.KubernetesVersion %s", existing.KubernetesConfig.KubernetesVersion)
stopk8s = true
}

View File

@ -91,11 +91,28 @@ type Starter struct {
// Start spins up a guest and starts the Kubernetes node.
func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) {
var kcs *kubeconfig.Settings
cr, err := handleNoKubernetes(starter)
if err != nil {
return kcs, err
if err := handleNoKubernetes(starter); err != nil {
return kcs, config.Write(viper.GetString(config.ProfileName), starter.Cfg)
}
// wait for preloaded tarball to finish downloading before configuring runtimes
waitCacheRequiredImages(&cacheGroup)
sv, err := util.ParseKubernetesVersion(starter.Node.KubernetesVersion)
if err != nil {
return nil, errors.Wrap(err, "Failed to parse Kubernetes version")
}
// configure the runtime (docker, containerd, crio)
cr := configureRuntimes(starter.Runner, *starter.Cfg, sv)
// check if installed runtime is compatible with current minikube code
if err = cruntime.CheckCompatibility(cr); err != nil {
return nil, err
}
showVersionInfo(starter.Node.KubernetesVersion, cr)
// Add "host.minikube.internal" DNS alias (intentionally non-fatal)
hostIP, err := cluster.HostIP(starter.Host, starter.Cfg.Name)
if err != nil {
@ -225,38 +242,20 @@ func Start(starter Starter, apiServer bool) (*kubeconfig.Settings, error) {
}
// handleNoKubernetes handles starting minikube without Kubernetes.
func handleNoKubernetes(starter Starter) (cruntime.Manager, error) {
func handleNoKubernetes(starter Starter) error {
// Do not bootstrap cluster if --no-kubernetes.
if starter.Node.KubernetesVersion == constants.NoKubernetesVersion {
// Stop existing Kubernetes node if applicable.
if starter.StopK8s {
cr, err := cruntime.New(cruntime.Config{Type: starter.Cfg.KubernetesConfig.ContainerRuntime, Runner: starter.Runner, Socket: starter.Cfg.KubernetesConfig.CRISocket})
if err != nil {
return nil, err
return err
}
kubeadm.StopKubernetes(starter.Runner, cr)
}
return nil, config.Write(viper.GetString(config.ProfileName), starter.Cfg)
return errors.New("stop kubernetes")
}
// Wait for preloaded tarball to finish downloading before configuring runtimes.
waitCacheRequiredImages(&cacheGroup)
sv, err := util.ParseKubernetesVersion(starter.Node.KubernetesVersion)
if err != nil {
return nil, errors.Wrap(err, "Failed to parse Kubernetes version")
}
// Configure the runtime (docker, containerd, crio).
cr := configureRuntimes(starter.Runner, *starter.Cfg, sv)
// Check if installed runtime is compatible with current minikube code.
if err = cruntime.CheckCompatibility(cr); err != nil {
return nil, err
}
showVersionInfo(starter.Node.KubernetesVersion, cr)
return cr, nil
return nil
}
// joinCluster adds new or prepares and then adds existing node to the cluster.