mirror of
https://github.com/thegeeklab/wp-opentofu.git
synced 2024-11-24 13:20:39 +00:00
Remove secrets handling and add copying TF_VAR_ vars to lowercase names
This commit is contained in:
parent
551bdf8b83
commit
69e77144a1
20
plugin.go
20
plugin.go
@ -5,6 +5,7 @@ import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"regexp"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
@ -53,9 +54,7 @@ func (p Plugin) Exec() error {
|
||||
|
||||
var commands []*exec.Cmd
|
||||
|
||||
if len(p.Config.Secrets) != 0 {
|
||||
exportSecrets(p.Config.Secrets)
|
||||
}
|
||||
CopyTfEnv()
|
||||
|
||||
if p.Config.Cacert != "" {
|
||||
commands = append(commands, installCaCert(p.Config.Cacert))
|
||||
@ -108,9 +107,14 @@ func installCaCert(cacert string) *exec.Cmd {
|
||||
)
|
||||
}
|
||||
|
||||
func exportSecrets(secrets map[string]string) {
|
||||
for k, v := range secrets {
|
||||
os.Setenv(fmt.Sprintf("%s", k), fmt.Sprintf("%s", os.Getenv(v)))
|
||||
func CopyTfEnv() {
|
||||
tfVar := regexp.MustCompile(`^TF_VAR_.*$`)
|
||||
for _, e := range os.Environ() {
|
||||
pair := strings.Split(e, "=")
|
||||
if tfVar.MatchString(pair[0]) {
|
||||
name := strings.Split(pair[0], "TF_VAR_")
|
||||
os.Setenv(fmt.Sprintf("TF_VAR_%s", strings.ToLower(name[1])), pair[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -187,10 +191,6 @@ func planCommand(config Config) *exec.Cmd {
|
||||
args = append(args, "-var")
|
||||
args = append(args, fmt.Sprintf("%s=%s", k, v))
|
||||
}
|
||||
for k, v := range config.Secrets {
|
||||
args = append(args, "-var")
|
||||
args = append(args, fmt.Sprintf("%s=%s", k, os.Getenv(v)))
|
||||
}
|
||||
if config.Parallelism > 0 {
|
||||
args = append(args, fmt.Sprintf("-parallelism=%d", config.Parallelism))
|
||||
}
|
||||
|
@ -1,9 +1,12 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
. "github.com/franela/goblin"
|
||||
)
|
||||
|
||||
func Test_destroyCommand(t *testing.T) {
|
||||
@ -131,3 +134,21 @@ func Test_planCommand(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPlugin(t *testing.T) {
|
||||
g := Goblin(t)
|
||||
|
||||
g.Describe("CopyTfEnv", func() {
|
||||
g.It("Should create copies of TF_VAR_ to lowercase", func() {
|
||||
// Set some initial TF_VAR_ that are uppercase
|
||||
os.Setenv("TF_VAR_SOMETHING", "some value")
|
||||
os.Setenv("TF_VAR_SOMETHING_ELSE", "some other value")
|
||||
|
||||
CopyTfEnv()
|
||||
|
||||
// Make sure new env vars exist with proper values
|
||||
g.Assert(os.Getenv("TF_VAR_something")).Equal("some value")
|
||||
g.Assert(os.Getenv("TF_VAR_something_else")).Equal("some other value")
|
||||
})
|
||||
})
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user