blob: c97b495a3beb870c92ce9e3b1286a58304c59c03 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
locals {
# Automatically load account-level variables
account_vars = read_terragrunt_config(find_in_parent_folders("account.hcl"))
# Automatically load region-level variables
region_vars = read_terragrunt_config(find_in_parent_folders("region.hcl"))
# Automatically load environment-level variables
environment_vars = read_terragrunt_config(find_in_parent_folders("env.hcl"))
# Extract the variables we need for easy access
user_name = local.account_vars.locals.user_name
password = local.account_vars.locals.password
auth_url = local.account_vars.locals.auth_url
project_id = local.account_vars.locals.project_id
backend = local.account_vars.locals.backend
backend_state = local.account_vars.locals.backend_state
region = local.region_vars.locals.region
environment = local.environment_vars.locals.environment
}
remote_state {
backend = local.backend
generate = {
path = "backend.tf"
if_exists = "overwrite_terragrunt"
}
config = {
bucket = "${local.backend_state}"
prefix = "${path_relative_to_include()}/terraform.tfstate"
}
}
# test/terragrunt.hcl
generate "provider" {
path = "provider.tf"
if_exists = "overwrite_terragrunt"
contents = <<EOF
provider "openstack" {
user_name = "${local.user_name}"
tenant_name = "${local.user_name}"
password = "${local.password}"
auth_url = "${local.auth_url}"
tenant_id = "${local.project_id}"
region = "${local.region}"
}
EOF
}
# ---------------------------------------------------------------------------------------------------------------------
# GLOBAL PARAMETERS
# These variables apply to all configurations in this subfolder. These are automatically merged into the child
# `terragrunt.hcl` config via the include block.
# ---------------------------------------------------------------------------------------------------------------------
# Configure root level variables that all resources can inherit. This is especially helpful with multi-account configs
# where terraform_remote_state data sources are placed directly into the modules.
inputs = merge(
local.account_vars.locals,
local.region_vars.locals,
local.environment_vars.locals,
)
|