Skip to content

Commit

Permalink
Upgrade terraform to 0.15.5
Browse files Browse the repository at this point in the history
  • Loading branch information
stoyanr committed Nov 8, 2021
1 parent 45dd48f commit 29839f2
Show file tree
Hide file tree
Showing 13 changed files with 38 additions and 29 deletions.
2 changes: 1 addition & 1 deletion build/alicloud/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/all/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/aws/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/azure/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/equinixmetal/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/gcp/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/openstack/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
2 changes: 1 addition & 1 deletion build/slim/TF_VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.14.11
0.15.5
5 changes: 2 additions & 3 deletions pkg/terraformer/terraformer.go
Original file line number Diff line number Diff line change
Expand Up @@ -237,6 +237,7 @@ func (t *Terraformer) executeTerraform(ctx context.Context, command Command, par
if command == StateReplaceProvider {
args = append(args, strings.Split(string(command), " ")...)
} else {
args = append(args, "-chdir="+t.paths.ConfigDir)
args = append(args, string(command))
}

Expand All @@ -258,11 +259,9 @@ func (t *Terraformer) executeTerraform(ctx context.Context, command Command, par

if command == StateReplaceProvider {
args = append(args, params...)
} else {
args = append(args, t.paths.ConfigDir)
}

log.Info("executing terraform", "command", command, "args", strings.Join(args[1:], " "))
log.Info("executing terraform", "command", command, "args", strings.Join(args, " "))
tfCmd := exec.Command(TerraformBinary, args...)

logBuffer := &bytes.Buffer{}
Expand Down
12 changes: 6 additions & 6 deletions pkg/terraformer/terraformer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ var _ = Describe("Terraformer", func() {
Eventually(logBuffer).Should(gbytes.Say("successfully stored terraform state"))

Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: init"),
ContainSubstring("init"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
})
Expand All @@ -261,7 +261,7 @@ var _ = Describe("Terraformer", func() {
Eventually(logBuffer).Should(gbytes.Say("successfully stored terraform state"))

Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: apply"),
ContainSubstring("apply"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
Expand All @@ -280,7 +280,7 @@ var _ = Describe("Terraformer", func() {
Eventually(logBuffer).Should(gbytes.Say("successfully stored terraform state"))

Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: destroy"),
ContainSubstring("destroy"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
Expand All @@ -299,7 +299,7 @@ var _ = Describe("Terraformer", func() {
Eventually(logBuffer).Should(gbytes.Say("successfully stored terraform state"))

Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: validate"),
ContainSubstring("validate"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
Expand Down Expand Up @@ -327,8 +327,8 @@ var _ = Describe("Terraformer", func() {
Eventually(logBuffer).Should(gbytes.Say("successfully stored terraform state"))

Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
Not(ContainSubstring("args: validate")),
ContainSubstring("args: plan"),
Not(ContainSubstring("validate")),
ContainSubstring("plan"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
Expand Down
12 changes: 6 additions & 6 deletions test/e2e/binary/binary_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -430,7 +430,7 @@ var _ = Describe("terraformer", func() {
It("should return exit code from terraform init", func() {
runExitCodeTest("apply", 12)
Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: init"),
ContainSubstring("init"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
})
Expand All @@ -449,23 +449,23 @@ var _ = Describe("terraformer", func() {
It("should return exit code from terraform apply", func() {
runExitCodeTest("apply", 42)
Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: apply"),
ContainSubstring("apply"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
})
It("should return exit code from terraform destroy", func() {
runExitCodeTest("destroy", 43)
Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: destroy"),
ContainSubstring("destroy"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
})
It("should return exit code from terraform validate", func() {
runExitCodeTest("validate", 44)
Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
ContainSubstring("args: validate"),
ContainSubstring("validate"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
Expand All @@ -482,8 +482,8 @@ var _ = Describe("terraformer", func() {
It("should return exit code from terraform plan", func() {
runExitCodeTest("validate", 45)
Expect(paths.TerminationMessagePath).To(testutils.BeFileWithContents(And(
Not(ContainSubstring("args: validate")),
ContainSubstring("args: plan"),
Not(ContainSubstring("validate")),
ContainSubstring("plan"),
ContainSubstring("doing some long running IaaS ops"),
ContainSubstring("some terraform error"),
)), "termination log should contain all terraform logs")
Expand Down
20 changes: 15 additions & 5 deletions test/utils/fake-terraform/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,10 @@ func main() {
fmt.Println("some terraform output")
fmt.Println("args: " + strings.Join(os.Args[1:], " "))

exitCode := getExpectedExitCode()
command := getCommand(os.Args[1:])
exitCode := getExpectedExitCode(command)

if sleepDuration != "" && (len(os.Args) <= 1 || os.Args[1] != "init") {
if sleepDuration != "" && command != "init" {
done := make(chan struct{})
defer close(done)

Expand Down Expand Up @@ -60,7 +61,17 @@ func main() {
os.Exit(exitCode)
}

func getExpectedExitCode() int {
func getCommand(args []string) string {
if len(args) < 2 {
return ""
}
if strings.HasPrefix(args[0], "-chdir=") {
return args[1]
}
return args[0] + " " + args[1]
}

func getExpectedExitCode(command string) int {
if expectedExitCodes == "" {
return 0
}
Expand All @@ -73,11 +84,10 @@ func getExpectedExitCode() int {
}

exitCodes := strings.Split(expectedExitCodes, ",")
if len(exitCodes) == 0 || len(os.Args) <= 1 || os.Args[1] == "" {
if len(exitCodes) == 0 || command == "" {
return 0
}

command := os.Args[1]
for _, e := range exitCodes {
if strings.HasPrefix(e, command+"=") {
code, err := strconv.Atoi(strings.TrimPrefix(e, command+"="))
Expand Down
2 changes: 1 addition & 1 deletion test/utils/objects.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ func PrepareTestObjects(ctx context.Context, c client.Client, namespacePrefix st
o.StateConfigMap = &corev1.ConfigMap{
ObjectMeta: metav1.ObjectMeta{Name: "tf-state", Namespace: o.Namespace},
Data: map[string]string{
StateKey: `{"terraform_version":"0.14.11"}`,
StateKey: `{"terraform_version":"0.15.5"}`,
},
}
err = o.client.Create(ctx, o.StateConfigMap)
Expand Down

0 comments on commit 29839f2

Please sign in to comment.