quickstart/101-azure-netapp-files/main.tf (68 lines of code) (raw):
# Create random pet name to ensure unique resource name
resource "random_pet" "rg_name" {
prefix = var.resource_group_name_prefix
}
# Create Resource Group
resource "azurerm_resource_group" "rg" {
location = var.resource_group_location
name = random_pet.rg_name.id
}
# Random String for unique naming of resources
resource "random_string" "name" {
length = 8
special = false
upper = false
lower = true
numeric = false
}
# Create Virtual Network
resource "azurerm_virtual_network" "vnet" {
name = "vnet-${random_string.name.result}"
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
}
# Create Subnet for NetApp
resource "azurerm_subnet" "subnet" {
name = "subnet-${random_string.name.result}"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.0.0/24"]
delegation {
name = "delegation"
service_delegation {
name = "Microsoft.Netapp/volumes"
actions = [
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action"
]
}
}
}
# Create NetApp Account
resource "azurerm_netapp_account" "account" {
name = "account-${random_string.name.result}"
resource_group_name = azurerm_resource_group.rg.name
location = azurerm_resource_group.rg.location
}
# Create NetApp Pool
resource "azurerm_netapp_pool" "pool" {
name = "pool-${random_string.name.result}"
resource_group_name = azurerm_resource_group.rg.name
account_name = azurerm_netapp_account.account.name
location = azurerm_resource_group.rg.location
service_level = "Premium"
size_in_tb = 4
}
# Create NetApp Volume
resource "azurerm_netapp_volume" "volume" {
name = "volume-${random_string.name.result}"
resource_group_name = azurerm_resource_group.rg.name
account_name = azurerm_netapp_account.account.name
pool_name = azurerm_netapp_pool.pool.name
location = azurerm_resource_group.rg.location
volume_path = "volume-${random_string.name.result}"
protocols = ["NFSv4.1"]
service_level = "Premium"
subnet_id = azurerm_subnet.subnet.id
storage_quota_in_gb = 100
export_policy_rule {
rule_index = 1
allowed_clients = ["0.0.0.0/0"]
protocols_enabled = ["NFSv4.1"]
unix_read_only = false
unix_read_write = true
}
}