hashicorp/terraform-provider-azurerm
DevOps & Self-hostingManage Azure Resource Manager resources declaratively with Terraform configurations.
What it does
The AzureRM Terraform Provider connects Terraform to Azure Resource Manager, so Azure resources can be declared in HCL and applied through Terraform's normal plan/apply workflow. It is aimed at teams and individuals who already use Terraform and want to manage Azure resource groups, networks, and other services from version-controlled configuration rather than the portal.
Quick start
Prerequisites: install Terraform Core (the latest release is recommended for provider 5.0) and have credentials for an Azure subscription. The provider can authenticate through the Azure CLI, a managed identity, or a service principal; details are in the provider authentication docs.
- Create a
.tffile that pins the provider and configures its requiredfeaturesblock:
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=5.0.0"
}
}
}
provider "azurerm" {
features {}
}
- Add a resource group and a virtual network:
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_virtual_network" "example" {
name = "example-network"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
address_space = ["10.0.0.0/16"]
}
- Run
terraform init, thenterraform planandterraform apply, from the directory containing the file. A successful apply creates the resource group and virtual network in the configured subscription.
More configuration options, including behavior toggles in the features block, are covered in the features guide, and working configurations are collected in the examples directory.
Constraints
- Terraform Core must be installed; provider 5.0 is intended for use with a current Terraform release.
- Azure credentials with permission to create the requested resources are required. The supported authentication methods are the Azure CLI, managed identity, and service principal.
- The
features {}block is part of provider configuration, so minimal examples need it even when no feature options are changed. - The provider is licensed under MPL-2.0.
- Repository participation involves processing GitHub profile and contribution data for security, compliance, audit, and vulnerability management, as described in the privacy notice.
Development
Building and testing the provider from source is documented in Building the Provider; contributor guides for the full workflow are in the contributing directory.
HotRepo's take
The repository recorded a best position of 2 on the GitHub Go daily list on 2026-11-05, when it added 2 stars and had 4,982 stars and 5,075 forks. That fork count exceeds the star count, which fits a provider that many teams fork to build and test against rather than simply bookmark. The single daily snapshot does not establish a growth trend; the more useful signal is the project's established role as the bridge between Terraform workflows and Azure Resource Manager.
Written by AI from the project's README, updated . The project's own docs are the source of truth.