107 lines
3.8 KiB
HCL
107 lines
3.8 KiB
HCL
locals {
|
|
feip_config_name = "${var.name}-lb-fe-ipconfig"
|
|
}
|
|
|
|
resource "azurerm_virtual_network" "default" {
|
|
name = "${var.name}-vnet"
|
|
address_space = ["10.0.0.0/16"]
|
|
location = azurerm_resource_group.default.location
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
}
|
|
|
|
resource "azurerm_subnet" "default" {
|
|
name = "${var.name}-default-subnet"
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
virtual_network_name = azurerm_virtual_network.default.name
|
|
address_prefix = "10.0.0.0/24"
|
|
}
|
|
|
|
resource "azurerm_subnet" "sf" {
|
|
name = "${var.name}-sf-subnet"
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
virtual_network_name = azurerm_virtual_network.default.name
|
|
address_prefix = "10.0.1.0/24"
|
|
}
|
|
|
|
resource "random_string" "pip_name_prefix" {
|
|
length = 17
|
|
special = false
|
|
numeric = false
|
|
}
|
|
|
|
resource "azurerm_public_ip" "sf" {
|
|
name = "${random_string.pip_name_prefix.result}-pip"
|
|
location = azurerm_resource_group.default.location
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
allocation_method = "Dynamic"
|
|
domain_name_label = "${var.dns_prefix}-${var.name}-${var.environment_short}-sf"
|
|
}
|
|
|
|
resource "azurerm_lb" "sf" {
|
|
name = "${var.name}-lb"
|
|
location = azurerm_resource_group.default.location
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
|
|
frontend_ip_configuration {
|
|
name = local.feip_config_name
|
|
public_ip_address_id = azurerm_public_ip.sf.id
|
|
}
|
|
}
|
|
|
|
resource "azurerm_lb_nat_pool" "sf" {
|
|
name = "${var.name}-nat-pool"
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
loadbalancer_id = azurerm_lb.sf.id
|
|
count = "1"
|
|
protocol = "Tcp"
|
|
frontend_port_start = 3389
|
|
frontend_port_end = 4500
|
|
backend_port = 3389
|
|
frontend_ip_configuration_name = local.feip_config_name
|
|
}
|
|
|
|
resource "azurerm_lb_backend_address_pool" "sf" {
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
loadbalancer_id = azurerm_lb.sf.id
|
|
name = "ServiceFabricAddressPool"
|
|
}
|
|
|
|
# Probes
|
|
resource "azurerm_lb_probe" "fabric_gateway" {
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
loadbalancer_id = azurerm_lb.sf.id
|
|
name = "${var.name}-probe-19000"
|
|
port = 19000
|
|
}
|
|
|
|
resource "azurerm_lb_probe" "http" {
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
loadbalancer_id = azurerm_lb.sf.id
|
|
name = "${var.name}-probe-19080"
|
|
port = 19080
|
|
}
|
|
|
|
resource "azurerm_lb_rule" "http" {
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
loadbalancer_id = azurerm_lb.sf.id
|
|
backend_address_pool_id = azurerm_lb_backend_address_pool.sf.id
|
|
probe_id = azurerm_lb_probe.http.id
|
|
name = "http"
|
|
protocol = "Tcp"
|
|
frontend_port = 19080
|
|
backend_port = 19080
|
|
frontend_ip_configuration_name = local.feip_config_name
|
|
}
|
|
|
|
resource "azurerm_lb_rule" "fabric_gateway" {
|
|
resource_group_name = azurerm_resource_group.default.name
|
|
loadbalancer_id = azurerm_lb.sf.id
|
|
backend_address_pool_id = azurerm_lb_backend_address_pool.sf.id
|
|
probe_id = azurerm_lb_probe.fabric_gateway.id
|
|
name = "fabric_gateway"
|
|
protocol = "Tcp"
|
|
frontend_port = 19000
|
|
backend_port = 19000
|
|
frontend_ip_configuration_name = local.feip_config_name
|
|
}
|