For those who might be wondering what HashiCorp Terraform is, Terraform is a tool which enables workflows for operators to provision and manage Azure infrastructure using “Infrastructure as Code.” For a good overview, check out this introduction to Terraform.
Wait, Infrastructure as Code… isn’t that what Azure Resource Management (ARM) templates are used for? Yes, ARM templates and Terraform provide similar services, but each has its own strengths. Our goal at Microsoft is to enable Azure customers to use whichever infrastructure provisioning tool best suits their needs.
Terraform utilizes a provider model that enables it to support various Infrastructure platforms. In order to have Azure support, operators use the Azure Terraform provider and provision the associated resources and data sources needed to be created and kept up to date. As you might guess, this requires someone to maintain the provider to ensure it supports the latest services offered by Azure. Enter our partnership with HashiCorp.
Around a year and a half ago Microsoft and HashiCorp joined forces to build and release an open source AzureRM provider for Terraform. Since then Microsoft and HashiCorp engineers have been working closely together with help from the Azure community to prioritize and develop Terraform Azure resources and data sources. To date this team has released more than 180 Terraform resources and around 50 Terraform data sources, enabling provisioning and management of a wide range of scenarios including IaaS (VM, network, storage, etc.) and PaaS (Azure Active Directory, Azure Containers, Web Apps, etc.) in Azure. In addition to resources and data sources the team has integrated Terraform support into the tools and processes that Azure customers use including Visual Studio Code integration, Azure Cloud Shell Integration and Azure Cloud Shell editor integration.
Significant progress has been made to enable most configurations in Azure through Terraform, but there is more work to be done. The Azure team is consistently adding new and exciting services or features for their users. In order to accomplish our goal of enabling Azure customers to use the provisioning tool that best suits their needs, both Microsoft and HashiCorp will continue to collaborate on improving the AzureRM provider.
All of this work is done in the open as part of open source projects so come join Microsoft, HashiCorp and the growing community of Azure Terraform customers who help us continue to make Terraform work great with Azure. You can help by giving us your feedback, filing bugs, or contributing in the form of documentation, source code or Terraform registry modules.
Questions or feedback? Please let us know in the comments.