What's Changed
🐛 Bug Fixes
Role assignments are no longer replaced on upgrade (#148, closes #137)
When upgrading from a version that migrated role assignments from azurerm to azapi (v0.19.0), the moved-in role assignment's GUID name was not yet known to the upstream random_uuid resource, causing name to resolve to (known after apply). Because name is part of the AzAPI resource identity, this forced a destroy-and-recreate of the role assignment — tearing down the RBAC binding during the apply and risking a transient access outage.
azapi_resource.role_assignments (root and subnet modules) now sets lifecycle { ignore_changes = [name] }. Role assignment names are immutable GUIDs in Azure (never renamed, only replaced), so ignoring name changes is safe and eliminates the forced replacement.
- No-op for existing consumers — once
random_uuidis in state, plans remain idempotent. - Only benefits mid-migration upgraders — those moving from a version predating the stable
random_uuidname. - Validated on real Azure via an upgrade simulation: before the fix, plan = 2 add / 1 destroy (RBAC binding torn down); after, plan = 1 add / 0 destroy, and re-plan reports no changes.
🔧 Maintenance
- Synced repository with the latest AVM governance templates (relocated agent skills to
.github/skills, added.github/agents, regenerated example footers).
Full Changelog: v0.22.0...v0.22.1