'Is Terraform just a fancy Azure ARM wrapper (in the case of Azure)
Is the question in the title fully correct?
- Is terraform an azure ARM wrapper?
I guess this is so. I know that Terraform has state and is not acting just a straightforward script. Does anybody have knowledge if Terraform (essentially azurerm) is doing something not through Azure ARM?
Solution 1:[1]
Both ARM templates and Terraform are Infrastructure as Code tools, one is a native IaC from Microsoft, and the other one is a 3rd party open-source tool. You can't really label Terraform as an ARM template wrapper - Azure Bicep on the other hand, is. Azure Bicep is an abstraction layer on top of ARM templates, which is in turn an abstraction of the Azure API.
Terraform, being an alternative to ARM, is also an abstraction to the Azure API. With this, every AzureRM service Terraform provides, has to be through an Azure API, which is only possible after authenticating to Azure.
ARM is generally more 'updated' than Terraform because it has direct support from Microsoft. That said, the community has seen a lot of contribution from Microsoft in recent years, to support and integrate Terraform even more. See snippet below from this LinkedIn post.
ARM is azure native and any new services/features will be made available immediately however terraform might have delay in getting provider updates from azure. However, Microsoft has officially been more proactive and supportive in releasing the new service providers and configuration updates to Terraform. In case of gaps, terraform can always be used to invoke ARM Templates, Azure Powershell , Azure CLI and integrates well with popular tools like Chef, Puppet, Ansible, Saltstack etc..
The gaps have reduced considerably, as Terraform has now a much bigger team supporting development.
Since you mentioned state file in this context, see this simple (hopefully) explanation about how terraform uses the state file to interact with Azure using the Azure API.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Ked Mardemootoo |
