Automatic Module Grouping
Resources are automatically organized by Terraform module, making it easy to understand changes in complex multi-module configurations.
all providers
Large Terraform plans often contain hundreds of resources scattered across multiple modules. tfplan2md automatically groups these resources by their module path, providing a structured and hierarchical view of changes.
❌ Without tfplan2md
Raw Terraform Output
# azurerm_resource_group.core will be created
+ resource "azurerm_resource_group" "core" {
+ name = "rg-tfplan2md-demo"
+ location = "eastus"
}
# module.network.azurerm_virtual_network.hub will be created
+ resource "azurerm_virtual_network" "hub" {
+ name = "vnet-hub"
}
# module.security.azurerm_role_assignment.rg_reader will be created
+ resource "azurerm_role_assignment" "rg_reader" {
+ role_definition_name = "Reader"
}
# module.network.azurerm_virtual_network.spoke will be created
+ resource "azurerm_virtual_network" "spoke" {
+ name = "vnet-spoke"
}
Resources from different modules are intermixed, so the plan structure is hard to follow.
✅ With tfplan2md
Module-Grouped Output
📦 Module: root
➕ azurerm_resource_group core — 🆔 rg-tfplan2md-demo 🌍 eastus
...
📦 Module: module.network
➕ azurerm_virtual_network hub — 🆔 vnet-hub 🌐 10.0.0.0/16
...
➕ azurerm_virtual_network spoke — 🆔 vnet-spoke 🌐 10.1.0.0/16
...
📦 Module: module.security
➕ azurerm_role_assignment rg_reader — 👤 User → 🛡️ Reader on rg-tfplan2md-demo
...
### 📦 Module: root
<details>
<summary>➕ azurerm_resource_group <b><code>core</code></b> — <code>🆔 rg-tfplan2md-demo</code> <code>🌍 eastus</code></summary>
...
</details>
---
### 📦 Module: `module.network`
<details>
<summary>➕ azurerm_virtual_network <b><code>hub</code></b> — <code>🆔 vnet-hub</code> <code>🌐 10.0.0.0/16</code></summary>
...
</details>
<details>
<summary>➕ azurerm_virtual_network <b><code>spoke</code></b> — <code>🆔 vnet-spoke</code> <code>🌐 10.1.0.0/16</code></summary>
...
</details>
---
### 📦 Module: `module.security`
<details>
<summary>➕ azurerm_role_assignment <b><code>rg_reader</code></b> — <code>👤 User</code> → <code>🛡️ Reader</code> on <code>rg-tfplan2md-demo</code></summary>
...
</details>Root resources and child modules are grouped cleanly, so reviewers can inspect one module at a time.
Benefits
- Root module appears first, followed by child modules in stable sorted order
- Modules without changes are omitted to keep reports focused
- Nested modules remain easy to follow without flattening the mental model
- Enabled by default with no template changes required
Learn More
Module grouping is automatically applied to all reports, organizing resources by their Terraform module hierarchy.