Skip to content

Commit 02aa42a

Browse files
committed
changes azs input
1 parent 009c693 commit 02aa42a

File tree

7 files changed

+55
-18
lines changed

7 files changed

+55
-18
lines changed

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,42 @@ To prevent destruction interruptions, any resources that have been created outsi
5050

5151
The private key generated by Keypair module will be stored in AWS Systems Manager Parameter Store. For more details refer [this](https://registry.terraform.io/modules/squareops/keypair/aws)
5252

53+
For encrypting vpc flow log cloudwatch log group please use this kms key policy. Change the account id and region.
54+
55+
```json
56+
{
57+
"Version": "2012-10-17",
58+
"Id": "allow-cloudwatch-logs-encryption",
59+
"Statement": [
60+
{
61+
"Sid": "AllowRootFullPermissions",
62+
"Effect": "Allow",
63+
"Principal": {
64+
"AWS": "arn:aws:iam::12345678:root"
65+
},
66+
"Action": "kms:*",
67+
"Resource": "*"
68+
},
69+
{
70+
"Sid": "AllowCloudWatchLogsEncryption",
71+
"Effect": "Allow",
72+
"Principal": {
73+
"Service": "logs.us-east-2.amazonaws.com"
74+
},
75+
"Action": [
76+
"kms:Encrypt*",
77+
"kms:Decrypt*",
78+
"kms:ReEncrypt*",
79+
"kms:GenerateDataKey*",
80+
"kms:Describe*"
81+
],
82+
"Resource": "*"
83+
}
84+
]
85+
}
86+
```
87+
88+
5389
## Network Scenarios
5490

5591
Users need to declare `vpc_cidr` and subnets are calculated with the help of in-built functions.

examples/complete-vpc-with-vpn/main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ module "vpc" {
2222
name = local.name
2323
vpc_cidr = local.vpc_cidr
2424
environment = local.environment
25-
flow_log_enabled = true
25+
flow_log_enabled = false
2626
vpn_key_pair_name = module.key_pair_vpn.key_pair_name
27-
availability_zones = 2
27+
availability_zones = ["us-east-1a", "us-east-1b"]
2828
vpn_server_enabled = false
2929
intra_subnet_enabled = true
3030
public_subnet_enabled = true
@@ -35,5 +35,5 @@ module "vpc" {
3535
vpn_server_instance_type = "t3a.small"
3636
flow_log_max_aggregation_interval = 60
3737
flow_log_cloudwatch_log_group_retention_in_days = 90
38-
flow_log_cloudwatch_log_group_kms_key_arn = "" #Enter your kms key arn
38+
flow_log_cloudwatch_log_group_kms_key_arn = "arn:aws:kms:us-east-2:222222222222:key/kms_key_arn" #Enter your kms key arn
3939
}

examples/simple-vpc/main.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ locals {
1111
}
1212

1313
module "vpc" {
14-
source = "squareops/vpc/aws"
14+
source = "../.."
1515
name = local.name
1616
vpc_cidr = local.vpc_cidr
1717
environment = local.environment
18-
availability_zones = 2
18+
availability_zones = ["us-east-1a", "us-east-1b"]
1919
public_subnet_enabled = true
2020
auto_assign_public_ip = true
2121
}

examples/vpc-with-ipv6/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ module "vpc" {
1616
name = local.name
1717
vpc_cidr = local.vpc_cidr
1818
environment = local.environment
19-
availability_zones = 2
19+
availability_zones = ["us-east-1a", "us-east-1b"]
2020
public_subnet_enabled = true
2121
private_subnet_enabled = true
2222
intra_subnet_enabled = false

examples/vpc-with-private-subnet/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ module "vpc" {
1515
name = local.name
1616
vpc_cidr = local.vpc_cidr
1717
environment = local.environment
18-
availability_zones = 2
18+
availability_zones = ["us-east-1a", "us-east-1b"]
1919
public_subnet_enabled = true
2020
private_subnet_enabled = true
2121
auto_assign_public_ip = true

main.tf

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
locals {
2-
intra_subnets = var.intra_subnet_enabled ? length(var.intra_subnet_cidrs) > 0 ? var.intra_subnet_cidrs : [for netnum in range(var.availability_zones * 3, var.availability_zones * 4) : cidrsubnet(var.vpc_cidr, 8, netnum)] : []
3-
public_subnets = var.public_subnet_enabled ? length(var.public_subnet_cidrs) > 0 ? var.public_subnet_cidrs : [for netnum in range(0, var.availability_zones) : cidrsubnet(var.vpc_cidr, 8, netnum)] : []
4-
private_subnets = var.private_subnet_enabled ? length(var.private_subnet_cidrs) > 0 ? var.private_subnet_cidrs : [for netnum in range(var.availability_zones, var.availability_zones * 2) : cidrsubnet(var.vpc_cidr, 4, netnum)] : []
5-
database_subnets = var.database_subnet_enabled ? length(var.database_subnet_cidrs) > 0 ? var.database_subnet_cidrs : [for netnum in range(var.availability_zones * 2, var.availability_zones * 3) : cidrsubnet(var.vpc_cidr, 8, netnum)] : []
2+
azs = length(var.availability_zones)
3+
intra_subnets = var.intra_subnet_enabled ? length(var.intra_subnet_cidrs) > 0 ? var.intra_subnet_cidrs : [for netnum in range(local.azs * 3, local.azs * 4) : cidrsubnet(var.vpc_cidr, 8, netnum)] : []
4+
public_subnets = var.public_subnet_enabled ? length(var.public_subnet_cidrs) > 0 ? var.public_subnet_cidrs : [for netnum in range(0, local.azs) : cidrsubnet(var.vpc_cidr, 8, netnum)] : []
5+
private_subnets = var.private_subnet_enabled ? length(var.private_subnet_cidrs) > 0 ? var.private_subnet_cidrs : [for netnum in range(local.azs, local.azs * 2) : cidrsubnet(var.vpc_cidr, 4, netnum)] : []
6+
database_subnets = var.database_subnet_enabled ? length(var.database_subnet_cidrs) > 0 ? var.database_subnet_cidrs : [for netnum in range(local.azs * 2, local.azs * 3) : cidrsubnet(var.vpc_cidr, 8, netnum)] : []
67
single_nat_gateway = var.one_nat_gateway_per_az == true ? false : true
78
create_database_subnet_route_table = var.database_subnet_enabled
89
create_flow_log_cloudwatch_log_group = var.flow_log_enabled == true ? true : false
@@ -23,10 +24,10 @@ locals {
2324
database_subnet_assign_ipv6_address_on_creation = var.database_subnet_assign_ipv6_address_on_creation == true && var.ipv6_enabled == true ? true : false
2425
intra_subnet_assign_ipv6_address_on_creation = var.intra_subnet_assign_ipv6_address_on_creation == true && var.ipv6_enabled == true ? true : false
2526

26-
public_subnet_ipv6_prefixes = var.public_subnet_enabled ? [for i in range(var.availability_zones) : i] : []
27-
private_subnet_ipv6_prefixes = var.private_subnet_enabled ? [for i in range(var.availability_zones) : i + length(data.aws_availability_zones.available.names)] : []
28-
database_subnet_ipv6_prefixes = var.database_subnet_enabled ? [for i in range(var.availability_zones) : i + 2 * length(data.aws_availability_zones.available.names)] : []
29-
intra_subnet_ipv6_prefixes = var.intra_subnet_enabled ? [for i in range(var.availability_zones) : i + 3 * length(data.aws_availability_zones.available.names)] : []
27+
public_subnet_ipv6_prefixes = var.public_subnet_enabled ? [for i in range(local.azs) : i] : []
28+
private_subnet_ipv6_prefixes = var.private_subnet_enabled ? [for i in range(local.azs) : i + length(data.aws_availability_zones.available.names)] : []
29+
database_subnet_ipv6_prefixes = var.database_subnet_enabled ? [for i in range(local.azs) : i + 2 * length(data.aws_availability_zones.available.names)] : []
30+
intra_subnet_ipv6_prefixes = var.intra_subnet_enabled ? [for i in range(local.azs) : i + 3 * length(data.aws_availability_zones.available.names)] : []
3031
}
3132
data "aws_availability_zones" "available" {}
3233
data "aws_ec2_instance_type" "arch" {
@@ -38,7 +39,7 @@ module "vpc" {
3839
version = "5.1.1"
3940
name = format("%s-%s-vpc", var.environment, var.name)
4041
cidr = var.vpc_cidr # CIDR FOR VPC
41-
azs = [for n in range(0, var.availability_zones) : data.aws_availability_zones.available.names[n]]
42+
azs = [for n in range(0, local.azs) : data.aws_availability_zones.available.names[n]]
4243
intra_subnets = local.intra_subnets
4344
public_subnets = local.public_subnets
4445
private_subnets = local.private_subnets

variables.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ variable "vpc_cidr" {
1919

2020
variable "availability_zones" {
2121
description = "Number of Availability Zone to be used by VPC Subnets"
22-
default = 2
23-
type = number
22+
default = []
23+
type = list(any)
2424
}
2525

2626
variable "public_subnet_enabled" {

0 commit comments

Comments
 (0)