github aztfmod/terraform-provider-azurecaf v2.0.0

5 hours ago

What's Changed

New Features

  • Added naming support for 29 AzureRM resource types, bringing the provider inventory from 494 to 520 definitions after invalid and obsolete definitions were removed.
  • Added deterministic plan-time calculation for azurecaf_name resources when random generation uses a non-zero random_seed.
  • Added mock-AzureRM schema validation without Azure credentials, including PR-scoped and weekly full-sweep workflows.

Changes

  • Migrated provider operations to Terraform SDK Context CRUD APIs and diag.Diagnostics.
  • Made seeded random generation deterministic across plan and apply, and moved unseeded generation to crypto/rand.
  • Restored fresh random generation when a name data source omits random_seed; explicit seeds, including 0, remain deterministic.
  • Made go generate emit gofmt-clean output so generated-code freshness checks are idempotent.
  • Regenerated the provider model and synchronized the resource documentation with all 520 definitions.
  • Migrated Copilot-powered workflows to GitHub's per-run authentication and pinned their supported model.

Bug Fixes

  • Hardened tag publishing with the full lifecycle E2E suite, an enforced 95% provider coverage floor, immutable release-tool pinning, curated per-tag notes, signed checksum verification, and actionable failure reporting.
  • Restored Issue Arborist execution by allowing its approved Python clustering step within the workspace-local output boundary.
  • Preserved environment-variable behavior so missing variables always fail, while fails_if_empty additionally rejects explicitly empty values.
  • Propagated state, regex, plan-time, and imported-state errors instead of discarding them.
  • Corrected the validation_regex JSON tag.
  • Rejected an invalid trailing pipe character in API Management and Load Test names.
  • Corrected 29 new or updated naming definitions to accept their documented one-character minimum.
  • Preserved unseeded random names during refresh so a plan after apply remains clean.
  • Deferred plan-time name generation when any naming input, including list elements, is unknown, avoiding placeholder-derived names and inconsistent apply results.
  • Corrected the mock-AzureRM harness so resource overrides are merged, generated HCL satisfies constrained schemas, initialization is isolated from user CLI settings, and tests verify the local provider binary.
  • Prevented mock-harness unit tests from dirtying tagged release worktrees with Python bytecode caches.
  • Updated the GoReleaser archive configuration to supported v2 syntax and normalized release-hook dependency metadata.

Breaking Changes

  • Removed the deprecated azurecaf_naming_convention resource.
  • Realigned 64 existing resource slugs with current CAF abbreviations; generated names can change when use_slug = true.
  • Removed azurerm_app_service_plan, azurerm_lb_backend_pool, and azurerm_role_assignment naming definitions.
  • Corrected naming constraints for Custom Provider, Load Balancer child resources, Private Link Service, Storage Table, Synapse Workspace, and Web Application Firewall Policy.
  • Corrected seeded random generation to use the complete alphabet; identical random_seed values can produce different suffixes than v1.x.

Read the v2.0.0 migration guide before upgrading. Review the complete Terraform plan because changed names can force replacement of downstream Azure resources.


Full Changelog: v1.2.34...v2.0.0

Don't miss a new terraform-provider-azurecaf release

NewReleases is sending notifications on new releases.