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

generate correct default rketools

always use rke's default k8s's rke-tools, even if rancher's default k8s
changes. This is based on assumption that change in rke-tools would also
require a new rke version.
This commit is contained in:
kinarashah
2019-07-18 13:26:56 -07:00
committed by Alena Prokharchyk
parent 55b1b4db7c
commit 217e1b41b8
3 changed files with 28 additions and 5 deletions

View File

@@ -2,6 +2,7 @@ package util
import (
"fmt"
"github.com/rancher/rke/metadata"
"os"
"reflect"
"strings"
@@ -13,8 +14,6 @@ import (
const (
WorkerThreads = 50
DefaultRKETools = "rancher/rke-tools:v0.1.35"
)
func StrToSemVer(version string) (*semver.Version, error) {
@@ -86,6 +85,20 @@ func IsFileExists(filePath string) (bool, error) {
}
}
func GetDefaultRKETools(image string) (string, error) {
tag, err := GetImageTagFromImage(image)
if err != nil || tag == "" {
return "", fmt.Errorf("defaultRKETools: no tag %s", image)
}
defaultImage := metadata.K8sVersionToRKESystemImages[metadata.DefaultK8sVersion].Alpine
toReplaceTag, err := GetImageTagFromImage(defaultImage)
if err != nil || toReplaceTag == "" {
return "", fmt.Errorf("defaultRKETools: no replace tag %s", defaultImage)
}
image = strings.Replace(image, tag, toReplaceTag, 1)
return image, nil
}
func GetImageTagFromImage(image string) (string, error) {
parsedImage, err := ref.ParseNormalizedNamed(image)
if err != nil {