From a521e2556736e7e6dca89774df91726880a03201 Mon Sep 17 00:00:00 2001 From: Adrian Stobbe Date: Tue, 25 Jul 2023 11:29:50 +0200 Subject: [PATCH] add iam migration warning to upgrade apply --- cli/internal/cmd/iamupgradeapply.go | 2 ++ cli/internal/cmd/upgradeapply.go | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/cli/internal/cmd/iamupgradeapply.go b/cli/internal/cmd/iamupgradeapply.go index 89555841e..84c0327f2 100644 --- a/cli/internal/cmd/iamupgradeapply.go +++ b/cli/internal/cmd/iamupgradeapply.go @@ -19,6 +19,8 @@ import ( "github.com/spf13/cobra" ) +const upgradeRequiresIAMMigration = true // TODO(elchead): needs to be set on every release. Can we automate this? + func newIAMUpgradeCmd() *cobra.Command { cmd := &cobra.Command{ Use: "upgrade", diff --git a/cli/internal/cmd/upgradeapply.go b/cli/internal/cmd/upgradeapply.go index 504d55830..b625f670a 100644 --- a/cli/internal/cmd/upgradeapply.go +++ b/cli/internal/cmd/upgradeapply.go @@ -60,6 +60,16 @@ func runUpgradeApply(cmd *cobra.Command, _ []string) error { return fmt.Errorf("creating logger: %w", err) } defer log.Sync() + if upgradeRequiresIAMMigration { + yes, err := askToConfirm(cmd, "WARNING: This upgrade requires an IAM migration. Please make sure you have applied the IAM migration using `iam upgrade apply` before continuing.") + if err != nil { + return fmt.Errorf("asking for confirmation: %w", err) + } + if !yes { + cmd.Println("Skipping upgrade.") + return nil + } + } fileHandler := file.NewHandler(afero.NewOsFs()) upgrader, err := kubernetes.NewUpgrader(cmd.Context(), cmd.OutOrStdout(), fileHandler, log, kubernetes.UpgradeCmdKindApply)