@@ -21,6 +21,8 @@ import (
2121 "fmt"
2222 "strings"
2323
24+ "github.com/Masterminds/semver"
25+
2426 "k8s.io/client-go/tools/clientcmd"
2527 clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
2628)
@@ -132,6 +134,38 @@ func DockerConfig(insecureRegistries, registryMirrors []string) (string, error)
132134 return string (b ), err
133135}
134136
137+ // DockerVersionApt returns Docker version to be installed on instances using apt (Ubuntu).
138+ func DockerVersionApt (kubernetesVersion * semver.Version ) (string , error ) {
139+ if kubernetesVersion == nil {
140+ return "" , fmt .Errorf ("invalid kubernetes version" )
141+ }
142+
143+ lessThen117 , _ := semver .NewConstraint ("< 1.17" )
144+
145+ if lessThen117 .Check (kubernetesVersion ) {
146+ return "5:18.09.9~3-0~ubuntu-bionic" , nil
147+ }
148+
149+ // return default
150+ return "5:19.03.12~3-0~ubuntu-bionic" , nil
151+ }
152+
153+ // DockerVersionYum returns Docker version to be installed on instances using yum (CentOS/RHEL).
154+ func DockerVersionYum (kubernetesVersion * semver.Version ) (string , error ) {
155+ if kubernetesVersion == nil {
156+ return "" , fmt .Errorf ("invalid kubernetes version" )
157+ }
158+
159+ lessThen117 , _ := semver .NewConstraint ("< 1.17" )
160+
161+ if lessThen117 .Check (kubernetesVersion ) {
162+ return "18.09.9-3.el7" , nil
163+ }
164+
165+ // return default
166+ return "19.03.12-3.el7" , nil
167+ }
168+
135169func ProxyEnvironment (proxy , noProxy string ) string {
136170 return fmt .Sprintf (`HTTP_PROXY=%s
137171http_proxy=%s
0 commit comments