|
| 1 | +locals { |
| 2 | + alb_external_ip = var.assign_public_ip ? 1 : 0 |
| 3 | +} |
1 | 4 | # ================= 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 | + |
2 | 14 | resource "azurerm_lb" "ui_lb" {
|
3 | 15 | count = var.create_lb ? 1 : 0
|
4 | 16 | name = "${var.prefix}-${var.cluster_name}-ui-lb"
|
5 | 17 | resource_group_name = var.rg_name
|
6 | 18 | location = data.azurerm_resource_group.rg.location
|
7 | 19 | 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 | + } |
13 | 36 | }
|
| 37 | + |
14 | 38 | tags = merge(var.tags_map, { "weka_cluster" : var.cluster_name })
|
15 | 39 | lifecycle {
|
16 | 40 | ignore_changes = [tags]
|
@@ -53,18 +77,37 @@ resource "azurerm_lb_rule" "ui_lb_rule" {
|
53 | 77 | }
|
54 | 78 |
|
55 | 79 | # ================= 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 | + |
56 | 89 | resource "azurerm_lb" "backend_lb" {
|
57 | 90 | count = var.create_lb ? 1 : 0
|
58 | 91 | name = "${var.prefix}-${var.cluster_name}-backend-lb"
|
59 | 92 | resource_group_name = var.rg_name
|
60 | 93 | location = data.azurerm_resource_group.rg.location
|
61 | 94 | sku = "Standard"
|
62 | 95 | 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 | + } |
68 | 111 | }
|
69 | 112 | lifecycle {
|
70 | 113 | ignore_changes = [tags]
|
@@ -107,7 +150,7 @@ resource "azurerm_lb_rule" "backend_lb_rule" {
|
107 | 150 | }
|
108 | 151 |
|
109 | 152 | 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 |
111 | 154 | name = lower("${var.cluster_name}-backend")
|
112 | 155 | zone_name = local.private_dns_zone_name
|
113 | 156 | resource_group_name = local.private_dns_rg_name
|
|
0 commit comments