diff options
| author | WillardHu <wei.hu@daocloud.io> | 2024-01-19 11:12:45 +0800 |
|---|---|---|
| committer | WillardHu <wei.hu@daocloud.io> | 2024-01-22 14:53:34 +0800 |
| commit | ac55d2d881405fb161e8c01aa0b33879b7387c02 (patch) | |
| tree | c8c503e0081063fd91ed277d7dbea6c0bf686482 | |
| parent | Merge pull request #5370 from tangming1996/feature/edgeapplications (diff) | |
| download | kubeedge-ac55d2d881405fb161e8c01aa0b33879b7387c02.tar.gz | |
For backward compatibility of the edgecore trigger the upgrade command
Signed-off-by: WillardHu <wei.hu@daocloud.io>
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/edge/upgrade.go | 27 | ||||
| -rw-r--r-- | keadm/cmd/keadm/app/cmd/upgrade.go | 14 |
2 files changed, 25 insertions, 16 deletions
diff --git a/keadm/cmd/keadm/app/cmd/edge/upgrade.go b/keadm/cmd/keadm/app/cmd/edge/upgrade.go index 773d3754a..c672b384c 100644 --- a/keadm/cmd/keadm/app/cmd/edge/upgrade.go +++ b/keadm/cmd/keadm/app/cmd/edge/upgrade.go @@ -43,7 +43,7 @@ var ( // NewEdgeUpgrade returns KubeEdge edge upgrade command. func NewEdgeUpgrade() *cobra.Command { - upgradeOptions := newUpgradeOptions() + upgradeOptions := NewUpgradeOptions() cmd := &cobra.Command{ Use: "edge", @@ -55,12 +55,12 @@ func NewEdgeUpgrade() *cobra.Command { }, } - addUpgradeFlags(cmd, upgradeOptions) + AddUpgradeFlags(cmd, upgradeOptions) return cmd } -// newJoinOptions returns a struct ready for being used for creating cmd join flags. -func newUpgradeOptions() *UpgradeOptions { +// NewUpgradeOptions returns a struct ready for being used for creating cmd join flags. +func NewUpgradeOptions() *UpgradeOptions { opts := &UpgradeOptions{} opts.ToVersion = "v" + common.DefaultKubeEdgeVersion opts.Config = constants.DefaultConfigDir + "edgecore.yaml" @@ -163,15 +163,15 @@ func (up *Upgrade) PreProcess() error { } // backup edgecore.db: copy from origin path to backup path - if err := copy(up.EdgeCoreConfig.DataBase.DataSource, filepath.Join(backupPath, "edgecore.db")); err != nil { + if err := copyFile(up.EdgeCoreConfig.DataBase.DataSource, filepath.Join(backupPath, "edgecore.db")); err != nil { return fmt.Errorf("failed to backup db: %v", err) } // backup edgecore.yaml: copy from origin path to backup path - if err := copy(up.ConfigFilePath, filepath.Join(backupPath, "edgecore.yaml")); err != nil { + if err := copyFile(up.ConfigFilePath, filepath.Join(backupPath, "edgecore.yaml")); err != nil { return fmt.Errorf("failed to back config: %v", err) } // backup edgecore: copy from origin path to backup path - if err := copy(filepath.Join(util.KubeEdgeUsrBinPath, util.KubeEdgeBinaryName), filepath.Join(backupPath, util.KubeEdgeBinaryName)); err != nil { + if err := copyFile(filepath.Join(util.KubeEdgeUsrBinPath, util.KubeEdgeBinaryName), filepath.Join(backupPath, util.KubeEdgeBinaryName)); err != nil { return fmt.Errorf("failed to backup edgecore: %v", err) } } @@ -203,7 +203,7 @@ func (up *Upgrade) PreProcess() error { return nil } -func copy(src, dst string) error { +func copyFile(src, dst string) error { sourceFileStat, err := os.Stat(src) if err != nil { return err @@ -240,7 +240,7 @@ func (up *Upgrade) Process() error { // copy new edgecore from upgradePath to /usr/local/bin upgradePath := filepath.Join(util.KubeEdgeUpgradePath, up.ToVersion) - err = copy(filepath.Join(upgradePath, util.KubeEdgeBinaryName), filepath.Join(util.KubeEdgeUsrBinPath, util.KubeEdgeBinaryName)) + err = copyFile(filepath.Join(upgradePath, util.KubeEdgeBinaryName), filepath.Join(util.KubeEdgeUsrBinPath, util.KubeEdgeBinaryName)) if err != nil { return fmt.Errorf("failed to cp file: %v", err) } @@ -280,15 +280,15 @@ func rollback(HistoryVersion, dataSource, configFilePath string) error { // backup edgecore.db: copy from backup path to origin path backupPath := filepath.Join(util.KubeEdgeBackupPath, HistoryVersion) - if err := copy(filepath.Join(backupPath, "edgecore.db"), dataSource); err != nil { + if err := copyFile(filepath.Join(backupPath, "edgecore.db"), dataSource); err != nil { return fmt.Errorf("failed to rollback db: %v", err) } // backup edgecore.yaml: copy from backup path to origin path - if err := copy(filepath.Join(backupPath, "edgecore.yaml"), configFilePath); err != nil { + if err := copyFile(filepath.Join(backupPath, "edgecore.yaml"), configFilePath); err != nil { return fmt.Errorf("failed to back config: %v", err) } // backup edgecore: copy from backup path to origin path - if err := copy(filepath.Join(backupPath, util.KubeEdgeBinaryName), filepath.Join(util.KubeEdgeUsrBinPath, util.KubeEdgeBinaryName)); err != nil { + if err := copyFile(filepath.Join(backupPath, util.KubeEdgeBinaryName), filepath.Join(util.KubeEdgeUsrBinPath, util.KubeEdgeBinaryName)); err != nil { return fmt.Errorf("failed to backup edgecore: %v", err) } @@ -342,7 +342,8 @@ type Upgrade struct { Reason string } -func addUpgradeFlags(cmd *cobra.Command, upgradeOptions *UpgradeOptions) { +// AddUpgradeFlags adds some flags to the upgrade command, and use UpgradeOptions struct to map these flags. +func AddUpgradeFlags(cmd *cobra.Command, upgradeOptions *UpgradeOptions) { cmd.Flags().StringVar(&upgradeOptions.UpgradeID, "upgradeID", upgradeOptions.UpgradeID, "Use this key to specify Upgrade CR ID") diff --git a/keadm/cmd/keadm/app/cmd/upgrade.go b/keadm/cmd/keadm/app/cmd/upgrade.go index 84456813d..6ad2c0e44 100644 --- a/keadm/cmd/keadm/app/cmd/upgrade.go +++ b/keadm/cmd/keadm/app/cmd/upgrade.go @@ -9,7 +9,8 @@ import ( const ( upgradeLongDescription = `Upgrade components of the cloud or the edge. -Specify whether to upgrade the cloud or the edge through three-level commands.` +Specify whether to upgrade the cloud or the edge through three-level commands. +If no three-level command, it upgrades edge components.` ) func NewUpgradeCommand() *cobra.Command { @@ -19,8 +20,15 @@ func NewUpgradeCommand() *cobra.Command { Long: upgradeLongDescription, } - cmds.AddCommand(cloud.NewCloudUpgrade()) - cmds.AddCommand(edge.NewEdgeUpgrade()) + edgecmd := edge.NewEdgeUpgrade() + + // Used for backward compatibility of the edgecore trigger the upgrade command + upgradeOptions := edge.NewUpgradeOptions() + edge.AddUpgradeFlags(cmds, upgradeOptions) + cmds.RunE = edgecmd.RunE + // Register three-level commands + cmds.AddCommand(edgecmd) + cmds.AddCommand(cloud.NewCloudUpgrade()) return cmds } |
