diff --git a/pkg/minikube/cruntime/containerd.go b/pkg/minikube/cruntime/containerd.go index 570407b61a..864f70b067 100644 --- a/pkg/minikube/cruntime/containerd.go +++ b/pkg/minikube/cruntime/containerd.go @@ -197,12 +197,17 @@ func generateContainerdConfig(cr CommandRunner, imageRepository string, kv semve } // Enable idempotently enables containerd on a host -func (r *Containerd) Enable(disOthers bool) error { +func (r *Containerd) Enable(disOthers, forceSystemd bool) error { if disOthers { if err := disableOthers(r, r.Runner); err != nil { glog.Warningf("disableOthers: %v", err) } } + if forceSystemd { + if err := r.ForceSystemd(); err != nil { + return err + } + } if err := populateCRIConfig(r.Runner, r.SocketPath()); err != nil { return err } diff --git a/pkg/minikube/cruntime/crio.go b/pkg/minikube/cruntime/crio.go index 4ff52cc37e..b9ab117459 100644 --- a/pkg/minikube/cruntime/crio.go +++ b/pkg/minikube/cruntime/crio.go @@ -110,12 +110,17 @@ func (r *CRIO) Active() bool { } // Enable idempotently enables CRIO on a host -func (r *CRIO) Enable(disOthers bool) error { +func (r *CRIO) Enable(disOthers, forceSystemd bool) error { if disOthers { if err := disableOthers(r, r.Runner); err != nil { glog.Warningf("disableOthers: %v", err) } } + if forceSystemd { + if err := r.ForceSystemd(); err != nil { + return err + } + } if err := populateCRIConfig(r.Runner, r.SocketPath()); err != nil { return err } diff --git a/pkg/minikube/cruntime/cruntime.go b/pkg/minikube/cruntime/cruntime.go index 3a5ad43d89..212709ee5b 100644 --- a/pkg/minikube/cruntime/cruntime.go +++ b/pkg/minikube/cruntime/cruntime.go @@ -63,7 +63,7 @@ type Manager interface { // Version retrieves the current version of this runtime Version() (string, error) // Enable idempotently enables this runtime on a host - Enable(bool) error + Enable(bool, bool) error // Disable idempotently disables this runtime on a host Disable() error // Active returns whether or not a runtime is active on a host diff --git a/pkg/minikube/cruntime/docker.go b/pkg/minikube/cruntime/docker.go index eb4c8030df..7f51fb3a3d 100644 --- a/pkg/minikube/cruntime/docker.go +++ b/pkg/minikube/cruntime/docker.go @@ -25,7 +25,6 @@ import ( "github.com/golang/glog" "github.com/pkg/errors" - "github.com/spf13/viper" "k8s.io/minikube/pkg/minikube/assets" "k8s.io/minikube/pkg/minikube/bootstrapper/images" "k8s.io/minikube/pkg/minikube/command" @@ -104,15 +103,17 @@ func (r *Docker) Active() bool { } // Enable idempotently enables Docker on a host -func (r *Docker) Enable(disOthers bool) error { +func (r *Docker) Enable(disOthers, forceSystemd bool) error { if disOthers { if err := disableOthers(r, r.Runner); err != nil { glog.Warningf("disableOthers: %v", err) } } - if err := r.ForceSystemd(); err != nil { - return errors.Wrap(err, "forcing systemd") + if forceSystemd { + if err := r.ForceSystemd(); err != nil { + return err + } } return r.Init.Start("docker") @@ -281,9 +282,6 @@ func (r *Docker) SystemLogCmd(len int) string { // ForceSystemd forces the docker daemon to use systemd as cgroup manager func (r *Docker) ForceSystemd() error { - if !viper.GetBool("force-systemd") { - return nil - } daemonConfig := `{ "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 5f2aecb0d9..aa6a908e0b 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -255,7 +255,7 @@ func configureRuntimes(runner cruntime.CommandRunner, cc config.ClusterConfig, k } } - err = cr.Enable(disableOthers) + err = cr.Enable(disableOthers, viper.GetBool("force-systemd")) if err != nil { debug.PrintStack() exit.WithError("Failed to enable container runtime", err)