1
0
mirror of https://github.com/rancher/rke.git synced 2025-09-01 15:06:23 +00:00

1. enable cri-dockerd when the cluster version >= 1.24 AND the option enable_cri_dockerd is not configured; 2. drop the flag --address when the cluster version >= 1.24 in the DinD case

This commit is contained in:
Jiaqi Luo
2022-06-28 17:17:27 -07:00
parent 1ad5292ae9
commit 9f5ecdb801
3 changed files with 59 additions and 6 deletions

View File

@@ -631,9 +631,9 @@ func validateIngressImages(c *Cluster) error {
func validateCRIDockerdOption(c *Cluster) error {
if c.EnableCRIDockerd != nil && *c.EnableCRIDockerd {
k8sVersion := c.RancherKubernetesEngineConfig.Version
toMatch, err := semver.Make(k8sVersion[1:])
parsedVersion, err := getClusterVersion(k8sVersion)
if err != nil {
return fmt.Errorf("%s is not valid semver", k8sVersion)
return err
}
logrus.Debugf("Checking cri-dockerd for cluster version [%s]", k8sVersion)
// cri-dockerd can be enabled for k8s 1.21 and up
@@ -641,7 +641,7 @@ func validateCRIDockerdOption(c *Cluster) error {
if err != nil {
logrus.Warnf("Failed to parse semver range for checking cri-dockerd")
}
if !CRIDockerdAllowedRange(toMatch) {
if !CRIDockerdAllowedRange(parsedVersion) {
logrus.Debugf("Cluster version [%s] is not allowed to enable cri-dockerd", k8sVersion)
return fmt.Errorf("Enabling cri-dockerd for cluster version [%s] is not supported", k8sVersion)
}
@@ -649,3 +649,15 @@ func validateCRIDockerdOption(c *Cluster) error {
}
return nil
}
func getClusterVersion(version string) (semver.Version, error) {
var parsedVersion semver.Version
if len(version) <= 1 || !strings.HasPrefix(version, "v") {
return parsedVersion, fmt.Errorf("%s is not valid version", version)
}
parsedVersion, err := semver.Parse(version[1:])
if err != nil {
return parsedVersion, fmt.Errorf("%s is not valid semver", version)
}
return parsedVersion, nil
}