mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-11-29 07:56:47 -05:00
cli: store upgrade files in versioned folders (#1929)
* upgrade versioning * dont pass upgrade kind as boolean * whitespace * fix godot lint check * clarify upgrade check directory suffix * cli: dry-run Terraform migrations on `upgrade check` (#1942) * dry-run Terraform migrations on upgrade check * clean whole upgrade dir * clean up check workspace after planning * fix parsing * extend upgrade check test * rename unused parameters * exclude false positives in test
This commit is contained in:
parent
f3c2198a9a
commit
b25228d175
13 changed files with 300 additions and 127 deletions
|
|
@ -15,6 +15,7 @@ import (
|
|||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/edgelesssys/constellation/v2/cli/internal/upgrade"
|
||||
"github.com/edgelesssys/constellation/v2/internal/api/versionsapi"
|
||||
"github.com/edgelesssys/constellation/v2/internal/attestation/measurements"
|
||||
"github.com/edgelesssys/constellation/v2/internal/attestation/variant"
|
||||
|
|
@ -224,34 +225,53 @@ func TestUpgradeCheck(t *testing.T) {
|
|||
Version: "v2.5.0",
|
||||
Kind: versionsapi.VersionKindImage,
|
||||
}
|
||||
collector := stubVersionCollector{
|
||||
supportedServicesVersions: "v2.5.0",
|
||||
supportedImages: []versionsapi.Version{v2_3},
|
||||
supportedImageVersions: map[string]measurements.M{
|
||||
"v2.3.0": measurements.DefaultsFor(cloudprovider.GCP, variant.GCPSEVES{}),
|
||||
},
|
||||
supportedK8sVersions: []string{"v1.24.5", "v1.24.12", "v1.25.6"},
|
||||
currentServicesVersions: "v2.4.0",
|
||||
currentImageVersion: "v2.4.0",
|
||||
currentK8sVersion: "v1.24.5",
|
||||
currentCLIVersion: "v2.4.0",
|
||||
images: []versionsapi.Version{v2_5},
|
||||
newCLIVersionsList: []string{"v2.5.0", "v2.6.0"},
|
||||
}
|
||||
|
||||
testCases := map[string]struct {
|
||||
collector stubVersionCollector
|
||||
flags upgradeCheckFlags
|
||||
csp cloudprovider.Provider
|
||||
cliVersion string
|
||||
wantError bool
|
||||
collector stubVersionCollector
|
||||
flags upgradeCheckFlags
|
||||
csp cloudprovider.Provider
|
||||
checker stubUpgradeChecker
|
||||
imagefetcher stubImageFetcher
|
||||
cliVersion string
|
||||
wantError bool
|
||||
}{
|
||||
"upgrades gcp": {
|
||||
collector: stubVersionCollector{
|
||||
supportedServicesVersions: "v2.5.0",
|
||||
supportedImages: []versionsapi.Version{v2_3},
|
||||
supportedImageVersions: map[string]measurements.M{
|
||||
"v2.3.0": measurements.DefaultsFor(cloudprovider.GCP, variant.GCPSEVES{}),
|
||||
},
|
||||
supportedK8sVersions: []string{"v1.24.5", "v1.24.12", "v1.25.6"},
|
||||
currentServicesVersions: "v2.4.0",
|
||||
currentImageVersion: "v2.4.0",
|
||||
currentK8sVersion: "v1.24.5",
|
||||
currentCLIVersion: "v2.4.0",
|
||||
images: []versionsapi.Version{v2_5},
|
||||
newCLIVersionsList: []string{"v2.5.0", "v2.6.0"},
|
||||
},
|
||||
collector: collector,
|
||||
checker: stubUpgradeChecker{},
|
||||
imagefetcher: stubImageFetcher{},
|
||||
flags: upgradeCheckFlags{
|
||||
configPath: constants.ConfigFilename,
|
||||
},
|
||||
csp: cloudprovider.GCP,
|
||||
cliVersion: "v1.0.0",
|
||||
},
|
||||
"terraform err": {
|
||||
collector: collector,
|
||||
checker: stubUpgradeChecker{
|
||||
err: assert.AnError,
|
||||
},
|
||||
imagefetcher: stubImageFetcher{},
|
||||
flags: upgradeCheckFlags{
|
||||
configPath: constants.ConfigFilename,
|
||||
},
|
||||
csp: cloudprovider.GCP,
|
||||
cliVersion: "v1.0.0",
|
||||
wantError: true,
|
||||
},
|
||||
}
|
||||
|
||||
for name, tc := range testCases {
|
||||
|
|
@ -266,6 +286,8 @@ func TestUpgradeCheck(t *testing.T) {
|
|||
checkCmd := upgradeCheckCmd{
|
||||
canUpgradeCheck: true,
|
||||
collect: &tc.collector,
|
||||
checker: tc.checker,
|
||||
imagefetcher: tc.imagefetcher,
|
||||
log: logger.NewTest(t),
|
||||
}
|
||||
|
||||
|
|
@ -338,6 +360,7 @@ func (s *stubVersionCollector) filterCompatibleCLIVersions(_ context.Context, _
|
|||
type stubUpgradeChecker struct {
|
||||
image string
|
||||
k8sVersion string
|
||||
tfDiff bool
|
||||
err error
|
||||
}
|
||||
|
||||
|
|
@ -345,10 +368,22 @@ func (u stubUpgradeChecker) CurrentImage(context.Context) (string, error) {
|
|||
return u.image, u.err
|
||||
}
|
||||
|
||||
func (u stubUpgradeChecker) CurrentKubernetesVersion(_ context.Context) (string, error) {
|
||||
func (u stubUpgradeChecker) CurrentKubernetesVersion(context.Context) (string, error) {
|
||||
return u.k8sVersion, u.err
|
||||
}
|
||||
|
||||
func (u stubUpgradeChecker) PlanTerraformMigrations(context.Context, upgrade.TerraformUpgradeOptions) (bool, error) {
|
||||
return u.tfDiff, u.err
|
||||
}
|
||||
|
||||
func (u stubUpgradeChecker) CheckTerraformMigrations(file.Handler) error {
|
||||
return u.err
|
||||
}
|
||||
|
||||
func (u stubUpgradeChecker) CleanUpTerraformMigrations(file.Handler) error {
|
||||
return u.err
|
||||
}
|
||||
|
||||
func TestNewCLIVersions(t *testing.T) {
|
||||
someErr := errors.New("some error")
|
||||
minorList := func() versionsapi.List {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue