call to function "merge" failed: arguments must be maps or objects,got "string"

Viewed 184

local {

team   = "testing-env"
environment = "test-one"
aws_region = "us-east-1"
overrides_path = "${get_terragrunt_dir()}/overrides.yaml"
overrides = yamldecode(fileexists(local.overrides_path) ? file(local.overrides_path) : "{}")
overridden = fileexists(local.overrides_path) ? merge(local.overrides.base_s3) : {}

}

Overrides.yaml

base_s3:
  team = "staging-one"
  aws_region = "us-east-1"

when I run Terragrunt fmt this is the error I'm receiving:

Error: Error in function call

/stage/terragrunt.hcl line 7, in locals: 7: overridden = fileexists(local.overrides_path) ? merge(local.overrides.base_s3) : {}

with local.overrides.base_s3 as "team = "staging-one"" aws_region = "us-east-1"".

Call to function "merge" failed: arguments must be maps or objects, got "string".

please how can i solve this problem?

1 Answers

Your Overrides.yaml just defines a string in yaml, not any object, thus there is nothing to merge. Maybe you want:

base_s3:
  team: "staging-one"
  aws_region: "us-east-1"
Related