Skip to content

Config tune: split trim mode into combinable -keep-* flags#9

Merged
magodo merged 4 commits into
mainfrom
config_trim_control
Jun 25, 2026
Merged

Config tune: split trim mode into combinable -keep-* flags#9
magodo merged 4 commits into
mainfrom
config_trim_control

Conversation

@magodo

@magodo magodo commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Replace the single default trim mode with three independent toggles: -keep-oc, -keep-zero, -keep-default. -full is now a shorthand for all three. Always-on removals (id, timeouts, Computed-only) unchanged.

Example

~/tmp/vnet
Γ¥» tfadd state
resource "azurerm_resource_group" "res-0" {
  location = "eastus"
  name     = "magodo-vnet"
}
resource "azurerm_subnet" "res-2" {
  address_prefixes                = ["10.0.0.0/24"]
  default_outbound_access_enabled = false
  name                            = "default"
  resource_group_name             = "magodo-vnet"
  virtual_network_name            = "magodo-test"
}
resource "azurerm_virtual_network" "res-1" {
  address_space       = ["10.0.0.0/16"]
  location            = "eastus"
  name                = "magodo-test"
  resource_group_name = "magodo-vnet"
}


~/tmp/vnet
Γ¥» tfadd state --keep-oc
resource "azurerm_resource_group" "res-0" {
  location = "eastus"
  name     = "magodo-vnet"
}
resource "azurerm_subnet" "res-2" {
  address_prefixes                = ["10.0.0.0/24"]
  default_outbound_access_enabled = false
  name                            = "default"
  resource_group_name             = "magodo-vnet"
  virtual_network_name            = "magodo-test"
}
resource "azurerm_virtual_network" "res-1" {
  address_space       = ["10.0.0.0/16"]
  location            = "eastus"
  name                = "magodo-test"
  resource_group_name = "magodo-vnet"
  subnet = [{
    address_prefixes                              = ["10.0.0.0/24"]
    default_outbound_access_enabled               = false
    delegation                                    = []
    id                                            = "/subscriptions/cb563ee9-7df0-468e-81d5-166968d1f89a/resourceGroups/magodo-vnet/providers/Microsoft.Network/virtualNetworks/magodo-test/subnets/default"
    name                                          = "default"
    private_endpoint_network_policies             = "Disabled"
    private_link_service_network_policies_enabled = true
    route_table_id                                = ""
    security_group                                = ""
    service_endpoint_policy_ids                   = []
    service_endpoints                             = []
  }]
}


~/tmp/vnet
Γ¥» tfadd state --keep-default
resource "azurerm_resource_group" "res-0" {
  location = "eastus"
  name     = "magodo-vnet"
}
resource "azurerm_subnet" "res-2" {
  address_prefixes                              = ["10.0.0.0/24"]
  default_outbound_access_enabled               = false
  name                                          = "default"
  private_endpoint_network_policies             = "Disabled"
  private_link_service_network_policies_enabled = true
  resource_group_name                           = "magodo-vnet"
  virtual_network_name                          = "magodo-test"
}
resource "azurerm_virtual_network" "res-1" {
  address_space                  = ["10.0.0.0/16"]
  location                       = "eastus"
  name                           = "magodo-test"
  private_endpoint_vnet_policies = "Disabled"
  resource_group_name            = "magodo-vnet"
}


~/tmp/vnet
Γ¥» tfadd state --keep-zero
resource "azurerm_resource_group" "res-0" {
  location   = "eastus"
  managed_by = ""
  name       = "magodo-vnet"
  tags       = {}
}
resource "azurerm_subnet" "res-2" {
  address_prefixes                = ["10.0.0.0/24"]
  default_outbound_access_enabled = false
  name                            = "default"
  resource_group_name             = "magodo-vnet"
  service_endpoint_policy_ids     = []
  service_endpoints               = []
  sharing_scope                   = ""
  virtual_network_name            = "magodo-test"
}
resource "azurerm_virtual_network" "res-1" {
  address_space           = ["10.0.0.0/16"]
  bgp_community           = ""
  edge_zone               = ""
  flow_timeout_in_minutes = 0
  location                = "eastus"
  name                    = "magodo-test"
  resource_group_name     = "magodo-vnet"
  tags                    = {}
}

(Note in the --keep-oc version, there are a few zero values in the azurerm_virtual_network's subnet block, which are not trimmed. This is because the subnet is a nested object attribute, tfadd currently only supports trimming on primitive types)

Replace the single default trim mode with three independent toggles:
-keep-oc, -keep-zero, -keep-default. -full is now a shorthand for all
three. Always-on removals (id, timeouts, Computed-only) unchanged.
@magodo magodo merged commit bfdd14b into main Jun 25, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants