1
0
mirror of https://github.com/rancher/rke.git synced 2025-04-28 03:31:24 +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

@ -3,6 +3,7 @@ package cluster
import (
"context"
"fmt"
"github.com/sirupsen/logrus"
"regexp"
"github.com/rancher/rke/docker"
@ -170,7 +171,12 @@ func (c *Cluster) etcdSnapshotChecksum(ctx context.Context, snapshotPath string)
}
func (c *Cluster) getBackupImage() string {
return util.DefaultRKETools
rkeToolsImage, err := util.GetDefaultRKETools(c.SystemImages.Alpine)
if err != nil {
logrus.Errorf("[etcd] error getting backup image %v", err)
return ""
}
return rkeToolsImage
}
func IsLocalSnapshot(name string) bool {

View File

@ -54,10 +54,14 @@ func RunEtcdPlane(
return err
}
if *es.Snapshot == true {
if err := RunEtcdSnapshotSave(ctx, host, prsMap, util.DefaultRKETools, EtcdSnapshotContainerName, false, es); err != nil {
rkeToolsImage, err := util.GetDefaultRKETools(alpineImage)
if err != nil {
return err
}
if err := pki.SaveBackupBundleOnHost(ctx, host, util.DefaultRKETools, EtcdSnapshotPath, prsMap); err != nil {
if err := RunEtcdSnapshotSave(ctx, host, prsMap, rkeToolsImage, EtcdSnapshotContainerName, false, es); err != nil {
return err
}
if err := pki.SaveBackupBundleOnHost(ctx, host, rkeToolsImage, EtcdSnapshotPath, prsMap); err != nil {
return err
}
} else {

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 {