@@ -28,6 +28,7 @@ import (
28
28
"strings"
29
29
"time"
30
30
31
+ "github.com/blang/semver"
31
32
"github.com/docker/machine/libmachine"
32
33
"github.com/docker/machine/libmachine/drivers"
33
34
"github.com/docker/machine/libmachine/engine"
@@ -313,6 +314,24 @@ func postStartSetup(h *host.Host, mc config.ClusterConfig) error {
313
314
return nil
314
315
}
315
316
317
+ // If none driver with docker container-runtime, require cri-dockerd and dockerd.
318
+ if driver .IsNone (h .DriverName ) && mc .KubernetesConfig .ContainerRuntime == constants .Docker {
319
+ // If Kubernetes version >= 1.24, require both cri-dockerd and dockerd.
320
+ k8sVer , err := semver .ParseTolerant (mc .KubernetesConfig .KubernetesVersion )
321
+ if err != nil {
322
+ klog .Errorf ("unable to parse Kubernetes version: %s" , mc .KubernetesConfig .KubernetesVersion )
323
+ return err
324
+ }
325
+ if k8sVer .GTE (semver.Version {Major : 1 , Minor : 24 }) {
326
+ if _ , err := exec .LookPath ("cri-dockerd" ); err != nil {
327
+ exit .Message (reason .NotFoundCriDockerd , "\n \n " )
328
+ }
329
+ if _ , err := exec .LookPath ("dockerd" ); err != nil {
330
+ exit .Message (reason .NotFoundDockerd , "\n \n " )
331
+ }
332
+ }
333
+ }
334
+
316
335
klog .Infof ("creating required directories: %v" , requiredDirectories )
317
336
318
337
r , err := CommandRunner (h )
0 commit comments