stdlib: terraform support

Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
This commit is contained in:
Andrea Luzzardi
2021-04-29 16:11:59 -07:00
parent 0cad17c8bf
commit b979e2e994
4 changed files with 154 additions and 1 deletions

View File

@@ -0,0 +1,65 @@
package terraform
import (
"encoding/json"
"dagger.io/dagger"
"dagger.io/dagger/op"
)
#Configuration: {
version: string | *"latest"
source: dagger.#Artifact
tfvars?: [string]: _
env: [string]: string
state: #up: [
op.#FetchContainer & {
ref: "hashicorp/terraform:\(version)"
},
op.#Copy & {
from: source
dest: "/src"
},
if tfvars != _|_ {
op.#WriteFile & {
dest: "/src/terraform.tfvars.json"
content: json.Marshal(tfvars)
}
},
op.#Exec & {
args: ["terraform", "init"]
dir: "/src"
"env": env
},
op.#Exec & {
args: ["terraform", "apply", "-auto-approve"]
always: true
dir: "/src"
"env": env
},
]
output: {
#up: [
op.#Load & {from: state},
op.#Exec & {
args: ["sh", "-c", "terraform output -json > /output.json"]
dir: "/src"
"env": env
},
op.#Export & {
source: "/output.json"
format: "json"
},
]
...
}
}