Skip to content

Commit 8c187f5

Browse files
committed
Resolved yamlencode issue by upgrading to terraform 0.12.12 | Added read aws secrets & setting cmd envar for aws
1 parent 581854b commit 8c187f5

3 files changed

Lines changed: 52 additions & 5 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ RUN mkdir -p /tmp/protoc && \
3636

3737
RUN GO111MODULE=off go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
3838

39-
RUN curl -kLo /tmp/terraform.zip "https://releases.hashicorp.com/terraform/0.12.0/terraform_0.12.0_linux_amd64.zip" && \
39+
RUN curl -kLo /tmp/terraform.zip "https://releases.hashicorp.com/terraform/0.12.12/terraform_0.12.12_linux_amd64.zip" && \
4040
unzip -d /usr/local/bin/ /tmp/terraform.zip
4141

4242
RUN apk add --update bash ca-certificates git python && \

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,10 @@ As the templates are embeded into the binary you will need to ensure packr2 is i
7979

8080
You can run `make deps-go` to install this.
8181

82+
As there alot of dependencies it will be easier to use this tool within the provided image, clone the repo and then run `make build-docker-local`.
83+
84+
The best way then to use this is to add an alias, then you can use the CLI as if it was installed as usual on your machine:
85+
`alias commit0='docker run -it -v "$(pwd):/project" commit0:v0'`
8286

8387
### Dependencies
8488

internal/generate/kubernetes/generate.go

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"errors"
55
"fmt"
66
"io"
7+
"io/ioutil"
78
"log"
89
"os"
910
"os/exec"
@@ -46,13 +47,14 @@ func Execute(config *config.Commit0Config, pathPrefix string) {
4647
writeSecrets(awsSecrets)
4748
}
4849

50+
envars := getAwsEnvars(readSecrets())
4951
log.Println("Planning infrastructure...")
50-
execute(exec.Command("terraform", "init"), pathPrefix)
51-
execute(exec.Command("terraform", "plan"), pathPrefix)
52+
execute(exec.Command("terraform", "init"), pathPrefix, envars)
53+
execute(exec.Command("terraform", "plan"), pathPrefix, envars)
5254
}
5355
}
5456

55-
func execute(cmd *exec.Cmd, pathPrefix string) {
57+
func execute(cmd *exec.Cmd, pathPrefix string, envars []string) {
5658
dir, err := os.Getwd()
5759

5860
if err != nil {
@@ -65,6 +67,12 @@ func execute(cmd *exec.Cmd, pathPrefix string) {
6567
stderrPipe, _ := cmd.StderrPipe()
6668

6769
var errStdout, errStderr error
70+
71+
if envars != nil {
72+
log.Println("Setting envars to cmd ...")
73+
cmd.Env = envars
74+
}
75+
6876
err = cmd.Start()
6977
if err != nil {
7078
log.Fatalf("Starting terraform command failed: %v\n", err)
@@ -91,6 +99,41 @@ func execute(cmd *exec.Cmd, pathPrefix string) {
9199
}
92100
}
93101

102+
func getAwsEnvars(awsSecrets Secrets) []string {
103+
env := os.Environ()
104+
env = append(env, fmt.Sprintf("AWS_ACCESS_KEY_ID=%s", awsSecrets.Aws.AwsAccessKeyID))
105+
env = append(env, fmt.Sprintf("AWS_SECRET_ACCESS_KEY=%s", awsSecrets.Aws.AwsSecretAccessKey))
106+
env = append(env, fmt.Sprintf("AWS_DEFAULT_REGION=%s", awsSecrets.Aws.Region))
107+
108+
return env
109+
}
110+
111+
func readSecrets() Secrets {
112+
113+
dir, err := os.Getwd()
114+
115+
if err != nil {
116+
log.Fatalf("Getting working directory failed: %v\n", err)
117+
panic(err)
118+
}
119+
120+
secretsFile := fmt.Sprintf("%s/secrets.yaml", dir)
121+
122+
data, err := ioutil.ReadFile(secretsFile)
123+
if err != nil {
124+
log.Fatalln(err)
125+
}
126+
127+
awsSecrets := Secrets{}
128+
129+
err = yaml.Unmarshal(data, &awsSecrets)
130+
if err != nil {
131+
log.Fatalln(err)
132+
}
133+
134+
return awsSecrets
135+
}
136+
94137
func writeSecrets(s Secrets) {
95138
secretsYaml, err := yaml.Marshal(&s)
96139

@@ -120,7 +163,7 @@ func writeSecrets(s Secrets) {
120163

121164
n3, err := f.WriteString(string(secretsYaml))
122165
f.Sync()
123-
log.Printf("wrote %d bytes to %v", n3, secretsFile)
166+
log.Printf("Wrote %d bytes to %v", n3, secretsFile)
124167

125168
}
126169

0 commit comments

Comments
 (0)