From cebe9047cf714e3433c914869cd41894419b9ceb Mon Sep 17 00:00:00 2001 From: Kimmo Lehto Date: Thu, 17 Jun 2021 12:54:29 +0300 Subject: [PATCH] Check if the k0s version has the ability to take/restore backups (#153) * Check if k0s version has the ability to take/restore backups * Fix --- phase/backup.go | 5 +++++ phase/restore.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/phase/backup.go b/phase/backup.go index 08bc098c..4da79386 100644 --- a/phase/backup.go +++ b/phase/backup.go @@ -33,6 +33,11 @@ func (p *Backup) Prepare(config *config.Cluster) error { if leader.Metadata.K0sRunningVersion == "" { return fmt.Errorf("failed to find a running controller") } + + if leader.Exec(leader.Configurer.K0sCmdf("backup --help")) != nil { + return fmt.Errorf("the version of k0s on the host does not support taking backups") + } + p.leader = leader return nil } diff --git a/phase/restore.go b/phase/restore.go index 248014b6..cb6ef220 100644 --- a/phase/restore.go +++ b/phase/restore.go @@ -30,6 +30,11 @@ func (p *Restore) Prepare(config *config.Cluster) error { log.Debugf("restore from: %s", p.RestoreFrom) p.Config = config p.leader = p.Config.Spec.K0sLeader() + + if p.RestoreFrom != "" && p.leader.Exec(p.leader.Configurer.K0sCmdf("restore --help")) != nil { + return fmt.Errorf("the version of k0s on the host does not support restoring backups") + } + log.Debugf("restore leader: %s", p.leader) log.Debugf("restore leader state: %+v", p.leader.Metadata) return nil