diff --git a/cli/internal/cmd/upgradeapply.go b/cli/internal/cmd/upgradeapply.go index 7c9d42aaf..c2bd7321f 100644 --- a/cli/internal/cmd/upgradeapply.go +++ b/cli/internal/cmd/upgradeapply.go @@ -15,6 +15,7 @@ import ( "github.com/edgelesssys/constellation/v2/cli/internal/cloudcmd" "github.com/edgelesssys/constellation/v2/cli/internal/helm" "github.com/edgelesssys/constellation/v2/internal/attestation/measurements" + "github.com/edgelesssys/constellation/v2/internal/cloud/cloudprovider" "github.com/edgelesssys/constellation/v2/internal/compatibility" "github.com/edgelesssys/constellation/v2/internal/config" "github.com/edgelesssys/constellation/v2/internal/file" @@ -80,23 +81,27 @@ func (u *upgradeApplyCmd) upgradeApply(cmd *cobra.Command, fileHandler file.Hand return err } - err = u.handleServiceUpgrade(cmd, conf, flags) - upgradeErr := &compatibility.InvalidUpgradeError{} - switch { - case errors.As(err, &upgradeErr): - cmd.PrintErrln(err) - case err != nil: - return fmt.Errorf("upgrading services: %w", err) - } + if conf.GetProvider() == cloudprovider.Azure || conf.GetProvider() == cloudprovider.GCP { + err = u.handleServiceUpgrade(cmd, conf, flags) + upgradeErr := &compatibility.InvalidUpgradeError{} + switch { + case errors.As(err, &upgradeErr): + cmd.PrintErrln(err) + case err != nil: + return fmt.Errorf("upgrading services: %w", err) + } - err = u.upgrader.UpgradeNodeVersion(cmd.Context(), conf) - switch { - case errors.Is(err, cloudcmd.ErrInProgress): - cmd.PrintErrln("Skipping image & Kubernetes upgrades. Another upgrade is in progress") - case errors.As(err, &upgradeErr): - cmd.PrintErrln(err) - case err != nil: - return fmt.Errorf("upgrading NodeVersion: %w", err) + err = u.upgrader.UpgradeNodeVersion(cmd.Context(), conf) + switch { + case errors.Is(err, cloudcmd.ErrInProgress): + cmd.PrintErrln("Skipping image and Kubernetes upgrades. Another upgrade is in progress.") + case errors.As(err, &upgradeErr): + cmd.PrintErrln(err) + case err != nil: + return fmt.Errorf("upgrading NodeVersion: %w", err) + } + } else { + cmd.PrintErrln("WARNING: Skipping service and image upgrades, which are currently only supported for Azure and GCP.") } // If an image upgrade was just executed there won't be a diff. The function will return nil in that case. diff --git a/docs/docs/workflows/upgrade.md b/docs/docs/workflows/upgrade.md index 7022733a1..fab74612c 100644 --- a/docs/docs/workflows/upgrade.md +++ b/docs/docs/workflows/upgrade.md @@ -6,6 +6,12 @@ You configure the desired versions in your local Constellation configuration and To learn about available versions you use the `upgrade check` command. Which versions are available depends on the CLI version you are using. +:::caution + +Upgrades arent't yet implemented for AWS. If you require this feature, [let us know](https://github.com/edgelesssys/constellation/issues/new?assignees=&labels=&template=feature_request.md)! + +::: + ## Update the CLI Each CLI comes with a set of supported microservice and Kubernetes versions.