# Azure Virtual Network Module Template variable "address_space" { description = "VNet address space" type = list(string) default = ["10.0.0.0/16"] } # Virtual Network resource "azurerm_virtual_network" "main" { name = "${var.project_name}-${var.environment}-vnet" location = azurerm_resource_group.main.location resource_group_name = azurerm_resource_group.main.name address_space = var.address_space tags = local.common_tags } # Public Subnet resource "azurerm_subnet" "public" { name = "public-subnet" resource_group_name = azurerm_resource_group.main.name virtual_network_name = azurerm_virtual_network.main.name address_prefixes = ["10.0.1.0/24"] } # Private Subnet resource "azurerm_subnet" "private" { name = "private-subnet" resource_group_name = azurerm_resource_group.main.name virtual_network_name = azurerm_virtual_network.main.name address_prefixes = ["10.0.2.0/24"] } # AKS Subnet resource "azurerm_subnet" "aks" { name = "aks-subnet" resource_group_name = azurerm_resource_group.main.name virtual_network_name = azurerm_virtual_network.main.name address_prefixes = ["10.0.10.0/23"] } # Network Security Group resource "azurerm_network_security_group" "main" { name = "${var.project_name}-${var.environment}-nsg" location = azurerm_resource_group.main.location resource_group_name = azurerm_resource_group.main.name security_rule { name = "SSH" priority = 1001 direction = "Inbound" access = "Allow" protocol = "Tcp" source_port_range = "*" destination_port_range = "22" source_address_prefix = "*" destination_address_prefix = "*" } tags = local.common_tags } # NSG Association resource "azurerm_subnet_network_security_group_association" "public" { subnet_id = azurerm_subnet.public.id network_security_group_id = azurerm_network_security_group.main.id } output "vnet_id" { value = azurerm_virtual_network.main.id } output "subnet_ids" { value = { public = azurerm_subnet.public.id private = azurerm_subnet.private.id aks = azurerm_subnet.aks.id } }