Skip to content

Commit

Permalink
Add temp dir cleanup on startup
Browse files Browse the repository at this point in the history
Adding a reliable way of cleaning up the contents of temp dir to make
sure it doesn't pile up terraform binaries and grow in size with every
restart.
  • Loading branch information
DTLP committed Oct 9, 2023
1 parent 7ac7651 commit 723dab2
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,12 @@ var (
Usage: "The comma separated list of ENVs which will be passed from controller to its managed modules during terraform run. " +
"The values should be set on the controller.",
},

&cli.BoolFlag{
Name: "cleanup-temp-dir",
Value: false,
Usage: "If set, the OS temporary directory will be removed and re-created. This can help removing redundant terraform" +
"binaries and avoiding temp directory growing in size with every restart",
},
&cli.StringFlag{
Name: "module-label-selector",
EnvVars: []string{"MODULE_LABEL_SELECTOR"},
Expand Down Expand Up @@ -411,6 +416,20 @@ preferences: {}

}

func cleanupTmpDir() {
tmpDir := os.TempDir()

err := os.RemoveAll(tmpDir)
if err != nil {
logger.Error("Error removing temporary directory:", err)
}

err = os.Mkdir(tmpDir, 0700)
if err != nil {
logger.Error("Error creating temporary directory:", err)
}
}

func main() {
app := &cli.App{
Name: "terraform-applier",
Expand Down Expand Up @@ -482,6 +501,11 @@ func run(c *cli.Context) {
}
}

// Cleanup temp directory if the corresponding flag is set
if c.Bool("cleanup-temp-dir") {
cleanupTmpDir()
}

// Find the requested version of terraform and log the version
// information
execPath, cleanup, err := findTerraformExecPath(ctx, terraformPath, terraformVersion)
Expand Down

0 comments on commit 723dab2

Please sign in to comment.