Initial commit: add .gitignore and README
This commit is contained in:
81
terraform/modules/azure/storage/main.tf
Normal file
81
terraform/modules/azure/storage/main.tf
Normal file
@@ -0,0 +1,81 @@
|
||||
# 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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user