82 lines
2.0 KiB
HCL
82 lines
2.0 KiB
HCL
# Azure Storage Module
|
|
# Main resources
|
|
|
|
terraform {
|
|
required_providers {
|
|
azurerm = {
|
|
source = "hashicorp/azurerm"
|
|
version = "~> 3.0"
|
|
}
|
|
}
|
|
}
|
|
|
|
# Storage Account
|
|
resource "azurerm_storage_account" "main" {
|
|
name = var.storage_account_name
|
|
resource_group_name = var.resource_group_name
|
|
location = var.location
|
|
account_tier = var.account_tier
|
|
account_replication_type = var.account_replication_type
|
|
account_kind = var.account_kind
|
|
|
|
enable_https_traffic_only = var.enable_https_traffic_only
|
|
min_tls_version = var.min_tls_version
|
|
|
|
blob_properties {
|
|
delete_retention_policy {
|
|
days = var.blob_delete_retention_days
|
|
}
|
|
container_delete_retention_policy {
|
|
days = var.container_delete_retention_days
|
|
}
|
|
}
|
|
|
|
network_rules {
|
|
default_action = var.network_rules.default_action
|
|
bypass = var.network_rules.bypass
|
|
ip_rules = var.network_rules.ip_rules
|
|
virtual_network_subnet_ids = var.network_rules.virtual_network_subnet_ids
|
|
}
|
|
|
|
tags = var.tags
|
|
|
|
lifecycle {
|
|
create_before_destroy = true
|
|
}
|
|
}
|
|
|
|
# Containers
|
|
resource "azurerm_storage_container" "containers" {
|
|
for_each = var.containers
|
|
|
|
name = each.value.name
|
|
storage_account_name = azurerm_storage_account.main.name
|
|
container_access_type = each.value.access_type
|
|
}
|
|
|
|
# File Shares
|
|
resource "azurerm_storage_share" "shares" {
|
|
for_each = var.file_shares
|
|
|
|
name = each.value.name
|
|
storage_account_name = azurerm_storage_account.main.name
|
|
quota = each.value.quota
|
|
}
|
|
|
|
# Queues
|
|
resource "azurerm_storage_queue" "queues" {
|
|
for_each = var.queues
|
|
|
|
name = each.value.name
|
|
storage_account_name = azurerm_storage_account.main.name
|
|
}
|
|
|
|
# Tables
|
|
resource "azurerm_storage_table" "tables" {
|
|
for_each = var.tables
|
|
|
|
name = each.value.name
|
|
storage_account_name = azurerm_storage_account.main.name
|
|
}
|
|
|