01-VPC

Module tạo VPC với CIDR được tính tự động từ stage_index

Stage Modulemodules/01-vpc

Mục đích

Tạo VPC riêng cho mỗi stage deployment. CIDR được tính tự động để tránh xung đột khi deploy nhiều stage trong cùng account.

Resources được tạo

ResourceMô tả
aws_vpc.thisVPC chính với CIDR /16

Input Variables

TênKiểuDefaultMô tả
stage_indexnumber0Index để tính CIDR (0, 1, 2, ...)
reserved_offsetslist(number)[0,1,2,3]Các offset đã dùng (skip 172.30-33)
projectstring"MILU2"Tag Project
environmentstring"stage"Tag Environment

CIDR Calculation Logic

CIDR được tính dựa trên stage_index và reserved_offsets:

CIDR Calculation
# locals.tf
locals {
  # reserved_offsets = [0,1,2,3] → skip 172.30, 172.31, 172.32, 172.33
  # stage_index = 0 → 172.34.0.0/16
  # stage_index = 1 → 172.35.0.0/16
  # stage_index = 2 → 172.36.0.0/16
  
  base_cidr   = 30  # Starting point
  offsets     = range(0, 100)  # Generate 0-99
  available   = [for o in local.offsets : o if !contains(var.reserved_offsets, o)]
  actual_offset = local.available[var.stage_index]
  
  vpc_cidr = "172.${local.base_cidr + local.actual_offset}.0.0/16"
}
stage_indexVPC CIDRSubnet mainSubnet second
0172.34.0.0/16172.34.0.0/24172.34.1.0/24
1172.35.0.0/16172.35.0.0/24172.35.1.0/24
2172.36.0.0/16172.36.0.0/24172.36.1.0/24

Outputs

TênMô tả
vpc_idID của VPC
vpc_cidrCIDR block của VPC

Dependencies

Thông tin

Module này là module đầu tiên, không phụ thuộc module khác.

Được sử dụng bởi