mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-07-22 06:50:43 -04:00
cli: Terraform migrations on upgrade (#1685)
* add terraform planning * overwrite terraform files in upgrade workspace * Revert "overwrite terraform files in upgrade workspace" This reverts commit 8bdacfb8bef23ef2cdbdb06bad0855b3bbc42df0. * prepare terraform workspace * test upgrade integration * print upgrade abort * rename plan file * write output to file * add show plan test * add upgrade tf workdir * fix workspace preparing * squash to 1 command * test * bazel build * plan test * register flag manually * bazel tidy * fix linter * remove MAA variable * fix workdir * accept tf variables * variable fetching * fix resource indices * accept Terraform targets * refactor upgrade command * Terraform migration apply unit test * pass down image fetcher to test * use new flags in e2e test * move file name to constant * update buildfiles * fix version constant * conditionally create MAA * move interface down * upgrade dir * update buildfiles * fix interface * fix createMAA check * fix imports * update buildfiles * wip: workspace backup * copy utils * backup upgrade workspace * remove debug print * replace old state after upgrade * check if flag exists * prepare test workspace * remove prefix Co-authored-by: Otto Bittner <cobittner@posteo.net> * respect file permissions * refactor tf upgrader * check workspace before upgrades * remove temp upgrade dir after completion * clean up workspace after abortion * fix upgrade apply test * fix linter --------- Co-authored-by: Otto Bittner <cobittner@posteo.net>
This commit is contained in:
parent
339e750c18
commit
c69e6777bd
21 changed files with 1391 additions and 44 deletions
|
@ -52,7 +52,7 @@ var (
|
|||
// setup checks that the prerequisites for the test are met:
|
||||
// - a workspace is set
|
||||
// - a CLI path is set
|
||||
// - the constellation-upgrade folder does not exist.
|
||||
// - the upgrade folder does not exist.
|
||||
func setup() error {
|
||||
workingDir, err := workingDir(*workspace)
|
||||
if err != nil {
|
||||
|
@ -66,8 +66,8 @@ func setup() error {
|
|||
if _, err := getCLIPath(*cliPath); err != nil {
|
||||
return fmt.Errorf("getting CLI path: %w", err)
|
||||
}
|
||||
if _, err := os.Stat("constellation-upgrade"); err == nil {
|
||||
return errors.New("please remove the existing constellation-upgrade folder")
|
||||
if _, err := os.Stat(constants.UpgradeDir); err == nil {
|
||||
return fmt.Errorf("please remove the existing %s folder", constants.UpgradeDir)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -107,7 +107,16 @@ func TestUpgrade(t *testing.T) {
|
|||
log.Println(string(data))
|
||||
|
||||
log.Println("Triggering upgrade.")
|
||||
cmd = exec.CommandContext(context.Background(), cli, "upgrade", "apply", "--force", "--debug", "-y")
|
||||
|
||||
tfLogFlag := ""
|
||||
cmd = exec.CommandContext(context.Background(), cli, "--help")
|
||||
msg, err = cmd.CombinedOutput()
|
||||
require.NoErrorf(err, "%s", string(msg))
|
||||
if strings.Contains(string(msg), "--tf-log") {
|
||||
tfLogFlag = "--tf-log=DEBUG"
|
||||
}
|
||||
|
||||
cmd = exec.CommandContext(context.Background(), cli, "upgrade", "apply", "--force", "--debug", "--yes", tfLogFlag)
|
||||
msg, err = cmd.CombinedOutput()
|
||||
require.NoErrorf(err, "%s", string(msg))
|
||||
require.NoError(containsUnexepectedMsg(string(msg)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue