Improve IP CIDR generation

This commit is contained in:
Greyscale 2024-12-10 16:09:03 +01:00
parent d4990b3660
commit f91c8bf808
Signed by: grey
GPG key ID: DDB392AE64B32D89

View file

@ -1,14 +1,24 @@
resource "random_integer" "upper_mid_byte" {
min = 18
max = 31
locals {
ranges = {
"low" = {
"min" = 18
"max" = 31
}
"high" = {
"min" = 128
"max" = 255
}
}
}
resource "random_integer" "lower_mid_byte" {
min = 10
max = 254
resource "random_integer" "subnet_ip_octet" {
for_each = local.ranges
min = local.ranges[each.key].min
max = local.ranges[each.key].max
}
locals {
// Generate a subnet
subnet = var.subnet != null ? var.subnet : "172.${random_integer.upper_mid_byte.result}.${random_integer.lower_mid_byte.result}.0/24"
subnet = var.subnet != null ? var.subnet : "172.${random_integer.subnet_ip_octet["high"].result}.${random_integer.subnet_ip_octet["low"].result}.0/24"
// Calculate the gateway from the subnet
gateway = cidrhost(local.subnet, 1)
}