Skip to content

Commit 6862c63

Browse files
committed
random cidr for Azure vnet
1 parent 09b6c31 commit 6862c63

File tree

4 files changed

+22
-9
lines changed

4 files changed

+22
-9
lines changed

terraform/azure/azure-linux-vm/main.tf

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ locals {
2929
vpc_id = module.vpc.vnet_id
3030
subnet_id = module.vpc.public_subnet_id
3131
network_security_group_id = azurerm_network_security_group.tailscale_ingress.id
32-
instance_type = "Standard_DS1_v2"
32+
instance_type = "Standard_D2as_v6"
3333
admin_public_key_path = var.admin_public_key_path
3434
}
3535

@@ -47,12 +47,6 @@ module "vpc" {
4747
location = local.location
4848
resource_group_name = local.resource_group_name
4949

50-
cidrs = ["10.0.0.0/22"]
51-
subnet_cidrs = [
52-
"10.0.0.0/24",
53-
"10.0.1.0/24",
54-
"10.0.2.0/24",
55-
]
5650
subnet_name_public = "public"
5751
subnet_name_private = "private"
5852
subnet_name_private_dns_resolver = "dns-inbound"

terraform/azure/azure-linux-vm/outputs.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ output "vpc_id" {
22
value = module.vpc.vnet_id
33
}
44

5+
output "vpc_cidrs" {
6+
value = module.vpc.vnet_address_space
7+
}
8+
59
output "nat_public_ips" {
610
value = module.vpc.nat_public_ips
711
}

terraform/azure/internal-modules/azure-network/main.tf

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,16 @@
1+
locals {
2+
cidrs = length(var.cidrs) == 0 ? [cidrsubnet("10.0.0.0/16", 6, random_integer.vpc_cidr[0].result)] : var.cidrs # /22
3+
subnet_cidrs = length(var.subnet_cidrs) == 0 ? [cidrsubnet(local.cidrs[0], 2, 0), cidrsubnet(local.cidrs[0], 2, 1), cidrsubnet(local.cidrs[0], 2, 2)] : var.subnet_cidrs # /24 inside the /22
4+
}
5+
6+
# Pick a random /22 within 10.0.0.0/16
7+
resource "random_integer" "vpc_cidr" {
8+
count = length(var.cidrs) == 0 ? 1 : 0
9+
10+
min = 0
11+
max = 63 # 2^(22-16)-1 = 64 slices in a /16
12+
}
13+
114
module "vpc" {
215
# https://registry.terraform.io/modules/Azure/network/azurerm/latest
316
source = "Azure/network/azurerm"
@@ -9,8 +22,8 @@ module "vpc" {
922
vnet_name = var.name
1023
tags = var.tags
1124

12-
address_spaces = var.cidrs
13-
subnet_prefixes = var.subnet_cidrs
25+
address_spaces = local.cidrs
26+
subnet_prefixes = local.subnet_cidrs
1427
subnet_names = [
1528
var.subnet_name_public,
1629
var.subnet_name_private,

terraform/azure/internal-modules/azure-network/variables.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,12 @@ variable "tags" {
2424
variable "cidrs" {
2525
description = "IPv4 CIDR block for the VPC"
2626
type = list(string)
27+
default = []
2728
}
2829
variable "subnet_cidrs" {
2930
description = "List of CIDR blocks"
3031
type = list(string)
32+
default = []
3133
}
3234
variable "subnet_name_public" {
3335
description = "Name of the `public` subnet"

0 commit comments

Comments
 (0)