Deep merge your JSON and YAML objects. Builds on cloudposse/utils, allowing mixing of JSON and YAML inputs.
Initialise the provider:
terraform {
required_providers {
merge = {
source = "LukeCarrier/merge"
}
}
}
provider "merge" {}
Then use the data source:
data "merge_merge" "json_multi" {
input {
format = "json"
data = jsonencode({
"hello" = "world"
})
}
input {
format = "json"
data = jsonencode({
"hello" = "galaxy"
})
}
output_format = "json"
}
output "json_multi" {
value = data.merge_merge.json_multi.output
}
Get the dependencies:
go mod download
go build
Run the unit tests:
go test ./...
To test a Terraform state, you'll need to create a .terraformrc
and set TF_CLI_CONFIG_FILE
to its path. See /integration/fixtures/example.terraformrc
for an example.
Generate a new key (use Keybase, GnuPG's CLI is a dumpster fire), then import it into a temporary local keyring:
export GNUPGHOME="$(mktemp -d)"
keybase pgp export -q email@addr -s \
| gpg --import --allow-secret-key-import --pinentry-mode=loopback
Export the private key, and paste the result into a new GitHub secret named GPG_PRIVATE_KEY
:
gpg --armor --export-secret-key email@addr
Add the passphrase to a secret named PASSPHRASE
.
Finally, export the public key and paste the result into the Terraform registry:
gpg --armor --export email@addr