Files
smom-dbis-138/terraform/modules/backup/main.tf

58 lines
1.3 KiB
Terraform
Raw Normal View History

# Backup Module for Azure
# Creates Recovery Services Vault for VM backups
# Recovery Services Vault
resource "azurerm_recovery_services_vault" "main" {
name = "${var.cluster_name}-backup-vault"
location = var.location
resource_group_name = var.resource_group_name
sku = "Standard"
# Enable soft delete and retention
soft_delete_enabled = true
tags = merge(var.tags, {
Purpose = "Backup"
})
}
# Backup Policy for VMs
resource "azurerm_backup_policy_vm" "daily" {
name = "${var.cluster_name}-daily-backup-policy"
resource_group_name = var.resource_group_name
recovery_vault_name = azurerm_recovery_services_vault.main.name
# Daily backup at 2 AM
timezone = "UTC"
backup {
frequency = "Daily"
time = "02:00"
}
retention_daily {
count = var.environment == "prod" ? 30 : 7
}
retention_weekly {
count = var.environment == "prod" ? 12 : 4
weekdays = ["Sunday"]
}
retention_monthly {
count = var.environment == "prod" ? 12 : 3
weekdays = ["Sunday"]
weeks = ["First"]
}
retention_yearly {
count = var.environment == "prod" ? 7 : 1
weekdays = ["Sunday"]
weeks = ["First"]
months = ["January"]
}
}
# Outputs are defined in outputs.tf