Skip to content

Commit 633cb9b

Browse files
committed
Update README.md
1 parent e0c5416 commit 633cb9b

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

README.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,96 @@ This module performs a deep map merge of standard Terraform maps/objects. It is
55
It functions by "flattening" each input map into a map of depth 1 where each key is the full path to the value in question. It then uses the standard merge function on these flat maps, and finally it re-builds the map structure in reverse order.
66

77
**Note:** Lists will be overwritten. Only maps are merged.
8+
9+
## Usage
10+
```
11+
locals {
12+
map1 = {
13+
key1-1 = {
14+
key1-1-1 = "value1-1-1"
15+
key1-1-2 = "value1-1-2"
16+
key1-1-3 = {
17+
key1-1-3-1 = "value1-1-3-1"
18+
key1-1-3-2 = "value1-1-3-2"
19+
}
20+
}
21+
key1-2 = "value1-2"
22+
key1-3 = {
23+
key1-3-1 = "value1-3-1"
24+
key1-3-2 = "value1-3-2"
25+
}
26+
}
27+
28+
map2 = {
29+
key1-1 = {
30+
key1-1-1 = "value1-1-1(overwrite)"
31+
key1-1-3 = {
32+
key1-1-3-2 = "value1-1-3-2(overwrite)"
33+
key1-1-3-3 = {
34+
key1-1-3-3-1 = "value1-1-3-3-1"
35+
}
36+
}
37+
key1-1-4 = "value1-1-4"
38+
}
39+
key1-2 = {
40+
key1-2-1 = "value1-2-1"
41+
key1-2-2 = "value1-2-2"
42+
key1-2-3 = {
43+
key1-2-3-1 = "value1-2-3-1"
44+
}
45+
}
46+
key1-3 = "value1-3(overwrite)"
47+
}
48+
49+
map3 = {
50+
key1-3 = "value1-3(double-overwrite)"
51+
key1-2 = {
52+
key1-2-3 = {
53+
key1-2-3-2 = "value1-2-3-2"
54+
}
55+
}
56+
}
57+
}
58+
59+
module "deepmerge" {
60+
source = "../../"
61+
maps = [
62+
local.map1,
63+
local.map2,
64+
local.map3
65+
]
66+
}
67+
68+
output "merged" {
69+
description = "The merged map."
70+
value = module.deepmerge.merged
71+
}
72+
73+
```
74+
75+
Output:
76+
```
77+
merged = {
78+
"key1-1" = {
79+
"key1-1-1" = "value1-1-1(overwrite)"
80+
"key1-1-2" = "value1-1-2"
81+
"key1-1-3" = {
82+
"key1-1-3-1" = "value1-1-3-1"
83+
"key1-1-3-2" = "value1-1-3-2(overwrite)"
84+
"key1-1-3-3" = {
85+
"key1-1-3-3-1" = "value1-1-3-3-1"
86+
}
87+
}
88+
"key1-1-4" = "value1-1-4"
89+
}
90+
"key1-2" = {
91+
"key1-2-1" = "value1-2-1"
92+
"key1-2-2" = "value1-2-2"
93+
"key1-2-3" = {
94+
"key1-2-3-1" = "value1-2-3-1"
95+
"key1-2-3-2" = "value1-2-3-2"
96+
}
97+
}
98+
"key1-3" = "value1-3(double-overwrite)"
99+
}
100+
```

0 commit comments

Comments
 (0)