Files
infrastructure/terraform/examples/networking-example/main.tf

97 lines
2.3 KiB
Terraform
Raw Normal View History

# Example: Using Azure Networking Module
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 3.0"
}
}
}
provider "azurerm" {
features {}
}
# Resource Group
resource "azurerm_resource_group" "example" {
name = "rg-example"
location = "eastus"
}
# Networking Module
module "networking" {
source = "../../modules/azure/networking"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
vnet_name = "vnet-example"
address_space = ["10.0.0.0/16"]
subnets = {
frontend = {
name = "snet-frontend"
address_prefixes = ["10.0.1.0/24"]
service_endpoints = ["Microsoft.Storage"]
}
backend = {
name = "snet-backend"
address_prefixes = ["10.0.2.0/24"]
service_endpoints = []
}
database = {
name = "snet-database"
address_prefixes = ["10.0.3.0/24"]
service_endpoints = ["Microsoft.Sql"]
}
}
network_security_groups = {
frontend_nsg = {
name = "nsg-frontend"
subnet_key = "frontend"
security_rules = [
{
name = "AllowHTTP"
priority = 100
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "80"
source_address_prefix = "*"
destination_address_prefix = "*"
},
{
name = "AllowHTTPS"
priority = 110
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "443"
source_address_prefix = "*"
destination_address_prefix = "*"
}
]
}
}
tags = {
Environment = "example"
ManagedBy = "Terraform"
}
}
# Outputs
output "vnet_id" {
value = module.networking.vnet_id
}
output "subnet_ids" {
value = module.networking.subnet_ids
}