From 068cdaa56c65efadd3eb6eb868cd85f2af9cf4a2 Mon Sep 17 00:00:00 2001 From: Thomas Riccardi Date: Tue, 13 Nov 2018 18:55:29 +0100 Subject: [PATCH] Recognize newer docker versions without -ce/-ee suffix Since docker 18.09, the ServerVersion field format changed: the `-ce` or `-ee` suffix disappeared: - docker 18.06: `18.06.1-ce` - docker 18.09: `18.09.0` This was not expected by the docker_validator version regexp, which assumed newer docker versions ended with `-[a-z]{2}`. This made the validator return an error, whereas we expect it to return only a warning (by recognizing it as a newer but not yet supported docker version). This commit relax the version regexp to also recognize `18.09.0`. The docker validator now returns a warning, as tested. --- cmd/kubeadm/app/util/system/docker_validator.go | 2 +- cmd/kubeadm/app/util/system/docker_validator_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/util/system/docker_validator.go b/cmd/kubeadm/app/util/system/docker_validator.go index 75ebf8b4330..48977766f3b 100644 --- a/cmd/kubeadm/app/util/system/docker_validator.go +++ b/cmd/kubeadm/app/util/system/docker_validator.go @@ -73,7 +73,7 @@ func (d *DockerValidator) validateDockerInfo(spec *DockerSpec, info types.Info) if !matched { // If it's of the new Docker version scheme but didn't match above, it // must be a newer version than the most recently validated one. - ver := `\d{2}\.\d+\.\d+-[a-z]{2}` + ver := `\d{2}\.\d+\.\d+(?:-[a-z]{2})?` r := regexp.MustCompile(ver) if r.MatchString(info.ServerVersion) { d.Reporter.Report(dockerConfigPrefix+"VERSION", info.ServerVersion, good) diff --git a/cmd/kubeadm/app/util/system/docker_validator_test.go b/cmd/kubeadm/app/util/system/docker_validator_test.go index 058143e5674..19b7e9adf37 100644 --- a/cmd/kubeadm/app/util/system/docker_validator_test.go +++ b/cmd/kubeadm/app/util/system/docker_validator_test.go @@ -81,6 +81,11 @@ func TestValidateDockerInfo(t *testing.T) { err: false, warn: false, }, + { + info: types.Info{Driver: "driver_2", ServerVersion: "18.09.0"}, + err: false, + warn: true, + }, } { warn, err := v.validateDockerInfo(spec, test.info) if !test.err {