Skip to content

Commit 2e1f99c

Browse files
author
Denise Perez
committed
feat: add external lb
1 parent 81a0253 commit 2e1f99c

File tree

2 files changed

+55
-12
lines changed

2 files changed

+55
-12
lines changed

clients.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module "clients" {
1111
vm_identity_name = var.client_identity_name
1212
frontend_container_cores_num = var.clients_use_dpdk ? var.client_frontend_cores : 1
1313
instance_type = var.client_instance_type
14-
backend_lb_ip = var.create_lb ? azurerm_lb.backend_lb[0].private_ip_address : ""
14+
backend_lb_ip = var.create_lb ? var.assign_public_ip ? azurerm_public_ip.backend_ip[0].ip_address : azurerm_lb.backend_lb[0].private_ip_address : ""
1515
ssh_public_key = var.ssh_public_key == null ? tls_private_key.ssh_key[0].public_key_openssh : var.ssh_public_key
1616
ppg_id = var.client_placement_group_id == "" ? local.placement_group_id : var.client_placement_group_id
1717
assign_public_ip = local.assign_public_ip

lb.tf

Lines changed: 54 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
1+
locals {
2+
alb_external_ip = var.assign_public_ip ? 1 : 0
3+
}
14
# ================= ui lb =========================== #
5+
resource "azurerm_public_ip" "ui_ip" {
6+
count = var.assign_public_ip ? 1 : 0
7+
name = "${var.prefix}-${var.cluster_name}-ui-public-ip"
8+
location = local.location
9+
resource_group_name = local.resource_group_name
10+
allocation_method = "Static"
11+
sku = "Standard"
12+
}
13+
214
resource "azurerm_lb" "ui_lb" {
315
count = var.create_lb ? 1 : 0
416
name = "${var.prefix}-${var.cluster_name}-ui-lb"
517
resource_group_name = var.rg_name
618
location = data.azurerm_resource_group.rg.location
719
sku = "Standard"
8-
frontend_ip_configuration {
9-
name = "${var.prefix}-${var.cluster_name}-ui-lb-frontend"
10-
subnet_id = data.azurerm_subnet.subnet.id
11-
private_ip_address_allocation = "Dynamic"
12-
private_ip_address_version = "IPv4"
20+
dynamic "frontend_ip_configuration" {
21+
for_each = range(0, local.alb_external_ip)
22+
content {
23+
name = "${var.prefix}-${var.cluster_name}-public-ui-frontend"
24+
public_ip_address_id = azurerm_public_ip.ui_ip[0].id
25+
26+
}
27+
}
28+
dynamic "frontend_ip_configuration" {
29+
for_each = range(local.alb_external_ip, 1)
30+
content {
31+
name = "${var.prefix}-${var.cluster_name}-ui-lb-frontend"
32+
subnet_id = data.azurerm_subnet.subnet.id
33+
private_ip_address_allocation = "Dynamic"
34+
private_ip_address_version = "IPv4"
35+
}
1336
}
37+
1438
tags = merge(var.tags_map, { "weka_cluster" : var.cluster_name })
1539
lifecycle {
1640
ignore_changes = [tags]
@@ -53,18 +77,37 @@ resource "azurerm_lb_rule" "ui_lb_rule" {
5377
}
5478

5579
# ================= backend lb =========================== #
80+
resource "azurerm_public_ip" "backend_ip" {
81+
count = var.assign_public_ip ? 1 : 0
82+
name = "${var.prefix}-${var.cluster_name}-backend-public-ip"
83+
location = local.location
84+
resource_group_name = local.resource_group_name
85+
allocation_method = "Static"
86+
sku = "Standard"
87+
}
88+
5689
resource "azurerm_lb" "backend_lb" {
5790
count = var.create_lb ? 1 : 0
5891
name = "${var.prefix}-${var.cluster_name}-backend-lb"
5992
resource_group_name = var.rg_name
6093
location = data.azurerm_resource_group.rg.location
6194
sku = "Standard"
6295
tags = merge(var.tags_map, { "weka_cluster" : var.cluster_name })
63-
frontend_ip_configuration {
64-
name = "${var.prefix}-${var.cluster_name}-backend-lb-frontend"
65-
subnet_id = data.azurerm_subnet.subnet.id
66-
private_ip_address_allocation = "Dynamic"
67-
private_ip_address_version = "IPv4"
96+
dynamic "frontend_ip_configuration" {
97+
for_each = range(0, local.alb_external_ip)
98+
content {
99+
name = "${var.prefix}-${var.cluster_name}-public-backend-frontend"
100+
public_ip_address_id = azurerm_public_ip.backend_ip[0].id
101+
}
102+
}
103+
dynamic "frontend_ip_configuration" {
104+
for_each = range(local.alb_external_ip, 1)
105+
content {
106+
name = "${var.prefix}-${var.cluster_name}-backend-lb-frontend"
107+
subnet_id = data.azurerm_subnet.subnet.id
108+
private_ip_address_allocation = "Dynamic"
109+
private_ip_address_version = "IPv4"
110+
}
68111
}
69112
lifecycle {
70113
ignore_changes = [tags]
@@ -107,7 +150,7 @@ resource "azurerm_lb_rule" "backend_lb_rule" {
107150
}
108151

109152
resource "azurerm_private_dns_a_record" "dns_a_record_backend_lb" {
110-
count = var.create_lb ? 1 : 0
153+
count = var.create_lb && !var.assign_public_ip ? 1 : 0
111154
name = lower("${var.cluster_name}-backend")
112155
zone_name = local.private_dns_zone_name
113156
resource_group_name = local.private_dns_rg_name

0 commit comments

Comments
 (0)