Il rilascio di AzureRM 5.0 rappresenta una major release fondamentale per il provider Terraform. L’obiettivo principale di questa versione è migliorare il controllo sui permessi di Azure, velocizzare i tempi di pianificazione/inizializzazione, introdurre validazioni preventive e rimuovere tutto il debito tecnico (risorse e parametri deprecati nelle versioni 4.x).
Ecco un riassunto dei cambiamenti e dei miglioramenti principali:
1. Cambio nel comportamento dei Resource Provider
Nelle versioni precedenti (3.x e 4.x), all’avvio il provider AzureRM tentava automaticamente di verificare e registrare una lista legacy di circa 60 Resource Provider Azure nella sottoscrizione. Questo causava spesso rallentamenti e generava errori di permessi per gli utenti con ruoli RBAC restrittivi.
-
Cosa cambia in v5.0: Il parametro
resource_provider_registrationsora è impostato di default sunone(anzichélegacy), ed è stato rimossoskip_provider_registration. -
Vantaggio: Il provider non richiede più permessi elevati a livello di sottoscrizione solo per inizializzarsi. È possibile registrare esclusivamente i servizi necessari direttamente nel blocco
providero gestirli esternamente tramite la pipeline.
2. Validazione preventiva con Azure Preflight Validation (Opt-in)
La versione 5.0 integra il supporto facoltativo per la Azure Preflight Validation API.
-
Come funziona: Se abilitata, durante l’esecuzione di
terraform plan, il provider effettua una chiamata live alle API di Azure per verificare se la configurazione pianificata rispetta le Azure Policy, le quote di sottoscrizione e le regole di convalida lato Azure. -
Vantaggio: Gli errori di quota, i blocchi dovuti a policy o i valori di proprietà non validi vengono intercettati in anticipo nel
plan, senza dover attendere il fallimento durante ilterraform apply.
Esempio Terraform
provider "azurerm" {
features {
enhanced_validation {
preflight_enabled = true
}
}
}
3. Standardizzazione della nomenclatura (Breaking Changes)
Per rendere le configurazioni più omogenee e allineate alle linee guida di HashiCorp, molte proprietà sono state rinominate e i vecchi formati sono stati completamente rimossi:
-
Proprietà booleane: Sostituite le vecchie proprietà
enable_*con il suffisso*_enabled.-
Esempio:
enable_rbac_authorizationè stato sostituito darbac_authorization_enabled(es. inazurerm_key_vault). -
Esempio:
enable_http2è diventatohttp2_enabled(es. inazurerm_application_gateway).
-
-
Uso uniforme degli ID di risorsa: Molti campi che prima richiedevano separatamente il nome della risorsa e il nome del Resource Group ora richiedono direttamente l’ID completo.
-
Esempio: In
azurerm_eventhub, la combinazionenamespace_nameeresource_group_nameè stata sostituita danamespace_id.
-

