You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3ad3c2c
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: src/content/articles/terraform-module-design-defaults-versioning-interfaces/index.mdx
+8-4Lines changed: 8 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ featured: true
15
15
16
16
I've seen production modules with 47 required variables — modules where using them meant copying a wall of configuration from the README and hoping you didn't miss anything. I've also inherited the opposite: modules with opaque defaults that worked great until someone deployed to production and discovered deletion protection was off by default.
17
17
18
-
The difference between modules that teams love and modules that teams fork-and-forget comes down to interface design. Specifically, how you handle defaults and what you consider a breaking change. Get these right, and your module becomes the obvious choice. Get them wrong, and you'll spend more time fielding support questions than writing infrastructure.
18
+
<Highlighter>The difference between modules that teams love and modules that teams fork-and-forget comes down to interface design.</Highlighter> Specifically, how you handle defaults and what you consider a breaking change. Get these right, and your module becomes the obvious choice. Get them wrong, and you'll spend more time fielding support questions than writing infrastructure.
19
19
20
20
## Required vs Optional: The 80% Rule
21
21
@@ -28,7 +28,7 @@ Think of it this way: if 80% of your consumers will use the same value, make it
28
28
I organize variables into three categories based on what consumers need to provide:
29
29
30
30
<List
31
-
variant="check-icons-list"
31
+
variant="numbered-with-background-list"
32
32
items={[
33
33
{
34
34
lead: 'Required variables',
@@ -124,7 +124,8 @@ Users can opt out for development environments; they shouldn't have to opt __in_
124
124
Here's where module maintenance gets tricky. You want to improve your module — fix bugs, add features, clean up technical debt. But every change risks breaking someone's deployment. Understanding which changes are safe and which require a major version bump saves you from angry Slack messages.
0 commit comments