1
0
mirror of https://github.com/rancher/rke.git synced 2025-08-18 06:47:13 +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 ( import (
"context" "context"
"fmt" "fmt"
"github.com/sirupsen/logrus"
"regexp" "regexp"
"github.com/rancher/rke/docker" "github.com/rancher/rke/docker"
@ -170,7 +171,12 @@ func (c *Cluster) etcdSnapshotChecksum(ctx context.Context, snapshotPath string)
} }
func (c *Cluster) getBackupImage() 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 { func IsLocalSnapshot(name string) bool {

View File

@ -54,10 +54,14 @@ func RunEtcdPlane(
return err return err
} }
if *es.Snapshot == true { 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 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 return err
} }
} else { } else {

View File

@ -2,6 +2,7 @@ package util
import ( import (
"fmt" "fmt"
"github.com/rancher/rke/metadata"
"os" "os"
"reflect" "reflect"
"strings" "strings"
@ -13,8 +14,6 @@ import (
const ( const (
WorkerThreads = 50 WorkerThreads = 50
DefaultRKETools = "rancher/rke-tools:v0.1.35"
) )
func StrToSemVer(version string) (*semver.Version, error) { 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) { func GetImageTagFromImage(image string) (string, error) {
parsedImage, err := ref.ParseNormalizedNamed(image) parsedImage, err := ref.ParseNormalizedNamed(image)
if err != nil { if err != nil {