Files
module-Azure-Virtual-Network/main.tf
Josuani Moranchel 7b032ed33c modulo
2024-02-15 14:19:57 -06:00

68 lines
2.1 KiB
HCL

#recursos locales (Zulunity)
# Local
locals {
tags = {}
}
# Default Label
module "default_label" {
source = "git::https://gitlab.com/zulunity/terraform/modules/general/label.git?ref=0.0.0"
name = var.name
tags = merge(var.tags, local.tags)
}
# Secret Label
module "secrets_label" {
source = "git::https://gitlab.com/zulunity/terraform/modules/general/label.git"
context = module.default_label.normalized_context
attributes = ["secret"]
}
#----------------------------------------------------------------------------------------------
#recusos externos necesarios para el modulo
resource "azurerm_resource_group" "example" {
name = "${var.name}_group"
location = var.region #recuerda que en azure la region o "location cambia"
}
resource "azurerm_network_security_group" "example" {
name = "${var.name}_segurity-network-group"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
}
resource "azurerm_virtual_network" "example" {
name = var.virtual_network
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
address_space = var.address_space
dns_servers = var.dns_servers
bgp_community = var.bgp_community
edge_zone = var.edge_zone
flow_timeout_in_minutes = var.flow_timeout_in_minutes
#este es un bloque de codigo que define el como especificar la configuración de un plan de protección contra ataques de denegación de servicio distribuido
dynamic "ddos_protection_plan" {
for_each = var.ddos_protection_plan
content {
id = ddos_protection_plan.value.id
enable = ddos_protection_plan.value.id
}
}
tags = module.default_label.tags
}
resource "azurerm_subnet" "example" {
for_each = var.subnets
name = each.value.name
resource_group_name = azurerm_virtual_network.example.resource_group_name
virtual_network_name = azurerm_virtual_network.example.name
address_prefixes = [each.value.address_prefix]
}