-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathlocals.tf
50 lines (45 loc) · 1.95 KB
/
locals.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Define resource names
locals {
unique_postfix = random_pet.unique_name.id
resource_group_name = "rg-demo-${local.unique_postfix}"
log_analytics_workspace_name = "law-demo-${local.unique_postfix}"
virtual_network_name = "vnet-demo-${local.unique_postfix}"
network_security_group_name = "nsg-demo-${local.unique_postfix}"
nat_gateway_name = "natgw-demo-${local.unique_postfix}"
nat_public_ip_name = "natpip-demo-${local.unique_postfix}"
key_vault_name = "kv-demo-${format("%.16s", local.unique_postfix)}"
storage_account_name = replace("stdemo${local.unique_postfix}", "-", "")
user_assigned_managed_identity_name = "uami-demo-${local.unique_postfix}"
}
# Calculate the CIDR for the subnets
locals {
virtual_network_address_space = "${var.address_space_start_ip}/${var.address_space_size}"
subnet_keys = keys(var.subnets)
subnet_new_bits = [for subnet in values(var.subnets) : subnet.size - var.address_space_size]
cidr_subnets = cidrsubnets(local.virtual_network_address_space, local.subnet_new_bits...)
subnets = { for key, value in var.subnets : key => {
name = key
address_prefixes = [local.cidr_subnets[index(local.subnet_keys, key)]]
network_security_group = value.has_network_security_group ? {
id = module.network_security_group.resource_id
} : null
nat_gateway = value.has_nat_gateway ? {
id = module.nat_gateway.resource_id
} : null
}
}
}
# Diagnostic settings
locals {
diagnostic_settings = {
sendToLogAnalytics = {
name = "sendToLogAnalytics"
workspace_resource_id = module.log_analytics_workspace.resource.id
}
}
}
# My IP address
locals {
my_ip_address_split = split(".", data.http.ip.response_body)
my_cidr_slash_24 = "${join(".", slice(local.my_ip_address_split, 0, 3))}.0/24"
}