Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 0 additions & 21 deletions .tflint.hcl

This file was deleted.

92 changes: 46 additions & 46 deletions account-setup/aws/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,31 +4,31 @@ locals {
for subnet in var.subnets[vpc_name].public_subnets_cidr : "${vpc_name}-${subnet}" => {
vpc_id = aws_vpc.vpc[vpc_name].id
subnet = subnet
az = var.subnets[vpc_name].availability_zones[index(var.subnets[vpc_name].public_subnets_cidr, subnet)]
az = var.subnets[vpc_name].availability_zones[index(var.subnets[vpc_name].public_subnets_cidr,subnet)]
}
})
]
...)
]
...)
private_subnet_map = merge([
for vpc_name in keys(var.subnets) : tomap({
for subnet in var.subnets[vpc_name].private_subnets_cidr : "${vpc_name}-${subnet}" => {
vpc_id = aws_vpc.vpc[vpc_name].id
subnet = subnet
az = var.subnets[vpc_name].availability_zones[index(var.subnets[vpc_name].private_subnets_cidr, subnet)]
az = var.subnets[vpc_name].availability_zones[index(var.subnets[vpc_name].private_subnets_cidr,subnet)]
}
})
]
...)
]
...)
db_subnet_map = merge([
for vpc_name in keys(var.subnets) : tomap({
for subnet in var.subnets[vpc_name].db_subnets_cidr : "${vpc_name}-${subnet}" => {
vpc_id = aws_vpc.vpc[vpc_name].id
subnet = subnet
az = var.subnets[vpc_name].availability_zones[index(var.subnets[vpc_name].db_subnets_cidr, subnet)]
az = var.subnets[vpc_name].availability_zones[index(var.subnets[vpc_name].db_subnets_cidr,subnet)]
}
})
]
...)
]
...)

}

Expand All @@ -48,12 +48,12 @@ resource "aws_subnet" "public_subnets" {
for_each = local.public_subnet_map
vpc_id = each.value["vpc_id"]
cidr_block = each.value["subnet"]
availability_zone = each.value["az"]
availability_zone = each.value["az"]
map_public_ip_on_launch = true

tags = {
Name = "${each.key}-public-subnet"
Environment = each.key
Environment = "${each.key}"
}
depends_on = [
aws_vpc.vpc
Expand All @@ -64,12 +64,12 @@ resource "aws_subnet" "private_subnets" {
for_each = local.private_subnet_map
vpc_id = each.value["vpc_id"]
cidr_block = each.value["subnet"]
availability_zone = each.value["az"]
availability_zone = each.value["az"]
map_public_ip_on_launch = false

tags = {
Name = "${each.key}-private-subnet"
Environment = each.key
Environment = "${each.key}"
}
depends_on = [
aws_vpc.vpc
Expand All @@ -80,12 +80,12 @@ resource "aws_subnet" "db_subnets" {
for_each = local.db_subnet_map
vpc_id = each.value["vpc_id"]
cidr_block = each.value["subnet"]
availability_zone = each.value["az"]
availability_zone = each.value["az"]
map_public_ip_on_launch = false

tags = {
Name = "${each.key}-db-subnet"
Environment = each.key
Environment = "${each.key}"
}
depends_on = [
aws_vpc.vpc
Expand All @@ -94,7 +94,7 @@ resource "aws_subnet" "db_subnets" {

resource "aws_internet_gateway" "internet_gw" {
for_each = var.subnets
vpc_id = aws_vpc.vpc[each.key].id
vpc_id = aws_vpc.vpc[each.key].id

tags = {
Name = "${each.key}-internet-gw"
Expand All @@ -104,97 +104,97 @@ resource "aws_internet_gateway" "internet_gw" {
## Route table
resource "aws_route_table" "public_route_table" {
for_each = var.subnets
vpc_id = aws_vpc.vpc[each.key].id
vpc_id = aws_vpc.vpc[each.key].id

tags = {
Name = "${each.key}-public_route_table"
}
}

resource "aws_route_table" "private_route_table" {
for_each = local.private_subnet_map
vpc_id = aws_vpc.vpc[split("-", each.key)[0]].id
for_each = local.private_subnet_map
vpc_id = aws_vpc.vpc[split("-",each.key)[0]].id

tags = {
Name = "${each.key}-private_route_table"
}
}

resource "aws_route_table" "db_route_table" {
for_each = local.db_subnet_map
vpc_id = aws_vpc.vpc[split("-", each.key)[0]].id
for_each = local.db_subnet_map
vpc_id = aws_vpc.vpc[split("-",each.key)[0]].id

tags = {
Name = "${each.key}-db_route_table"
}
}

resource "aws_eip" "eip" {
for_each = local.public_subnet_map
vpc = true
for_each = local.public_subnet_map
vpc = true
depends_on = [aws_internet_gateway.internet_gw]
tags = {
Name = "${each.key}-nat-gateway-eip"
}
}

resource "aws_nat_gateway" "nat-gateway" {
for_each = local.public_subnet_map
for_each = local.public_subnet_map
allocation_id = aws_eip.eip[each.key].id
subnet_id = aws_subnet.public_subnets[each.key].id
tags = {
Name = "${each.key}-nat-gateway-public"
}

depends_on = [aws_eip.eip, aws_subnet.public_subnets, aws_internet_gateway.internet_gw]
depends_on = [aws_eip.eip,aws_subnet.public_subnets,aws_internet_gateway.internet_gw]
}

resource "aws_route" "public_route" {
for_each = var.subnets
route_table_id = aws_route_table.public_route_table[each.key].id
destination_cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.internet_gw[each.key].id
depends_on = [aws_internet_gateway.internet_gw]
for_each = var.subnets
route_table_id = aws_route_table.public_route_table[each.key].id
destination_cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.internet_gw[each.key].id
depends_on = [aws_internet_gateway.internet_gw]
}

resource "aws_route" "private_route" {
count = length(keys(local.private_subnet_map))
route_table_id = aws_route_table.private_route_table[element(keys(local.private_subnet_map), count.index)].id
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.nat-gateway[element(keys(local.public_subnet_map), count.index)].id
depends_on = [aws_nat_gateway.nat-gateway, aws_internet_gateway.internet_gw]
count = length(keys(local.private_subnet_map))
route_table_id = aws_route_table.private_route_table[element(keys(local.private_subnet_map),count.index)].id
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.nat-gateway[element(keys(local.public_subnet_map),count.index)].id
depends_on = [aws_nat_gateway.nat-gateway,aws_internet_gateway.internet_gw]
}

resource "aws_route" "db_route" {
count = length(keys(local.db_subnet_map))
route_table_id = aws_route_table.db_route_table[element(keys(local.db_subnet_map), count.index)].id
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.nat-gateway[element(keys(local.public_subnet_map), count.index)].id
depends_on = [aws_nat_gateway.nat-gateway, aws_internet_gateway.internet_gw]
count = length(keys(local.db_subnet_map))
route_table_id = aws_route_table.db_route_table[element(keys(local.db_subnet_map),count.index)].id
destination_cidr_block = "0.0.0.0/0"
nat_gateway_id = aws_nat_gateway.nat-gateway[element(keys(local.public_subnet_map),count.index)].id
depends_on = [aws_nat_gateway.nat-gateway,aws_internet_gateway.internet_gw]
}

resource "aws_route_table_association" "public_route_table_association" {
for_each = local.public_subnet_map
for_each = local.public_subnet_map
subnet_id = aws_subnet.public_subnets[each.key].id
route_table_id = aws_route_table.public_route_table[split("-", each.key)[0]].id
route_table_id = aws_route_table.public_route_table[split("-",each.key)[0]].id
}

resource "aws_route_table_association" "private_route_table_association" {
for_each = local.private_subnet_map
for_each = local.private_subnet_map

subnet_id = aws_subnet.private_subnets[each.key].id
subnet_id = aws_subnet.private_subnets[each.key].id
route_table_id = aws_route_table.private_route_table[each.key].id
}

resource "aws_route_table_association" "db_route_table_association" {
for_each = local.db_subnet_map
for_each = local.db_subnet_map

subnet_id = aws_subnet.db_subnets[each.key].id
route_table_id = aws_route_table.db_route_table[each.key].id
}

resource "aws_security_group" "allow_tls" {
for_each = var.subnets
for_each = var.subnets
description = "Cluster communication with worker nodes"
vpc_id = aws_vpc.vpc[each.key].id
}
2 changes: 1 addition & 1 deletion account-setup/aws/outputs.tf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
output "vpc_id" {
value = [aws_vpc.vpc]
value = ["${aws_vpc.vpc}"]
}

output "public_subnets" {
Expand Down
71 changes: 36 additions & 35 deletions github/aws/teams.tf
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
data "github_organization" "organization" {
name = var.owner
name = var.owner
}

locals {
org_members = data.github_organization.organization.members
github_repo_admin_access = merge([
for team in keys(var.github_teams) : tomap({
for user in var.github_teams[team].admins : "${team}-${user}" => {
user = user
team = team
}
})
user = user
team = team
}
})
]...)

github_repo_editor_access = merge([
Expand All @@ -32,58 +33,58 @@ locals {

}
resource "github_team" "admin_team" {
for_each = var.github_teams
name = "${each.key}_admin"
for_each = var.github_teams
name = "${each.key}_admin"
}

resource "github_team" "editor_team" {
for_each = var.github_teams
name = "${each.key}_editor"
for_each = var.github_teams
name = "${each.key}_editor"
}

resource "github_team" "viewer_team" {
for_each = var.github_teams
name = "${each.key}_viewer"
for_each = var.github_teams
name = "${each.key}_viewer"
}

resource "github_team_membership" "admin_team" {
for_each = local.github_repo_admin_access
team_id = github_team.admin_team[each.value.team].id
username = each.value.user
role = "member"
for_each = local.github_repo_admin_access
team_id = github_team.admin_team[each.value.team].id
username = each.value.user
role = "member"
}

resource "github_team_membership" "editor_team" {
for_each = local.github_repo_editor_access
team_id = github_team.editor_team[each.value.team].id
username = each.value.user
role = "member"
for_each = local.github_repo_editor_access
team_id = github_team.editor_team[each.value.team].id
username = each.value.user
role = "member"
}

resource "github_team_membership" "viewer_team" {
for_each = local.github_repo_viewer_access
team_id = github_team.viewer_team[each.value.team].id
username = each.value.user
role = "member"
for_each = local.github_repo_viewer_access
team_id = github_team.viewer_team[each.value.team].id
username = each.value.user
role = "member"
}

resource "github_team_repository" "admin_team" {
for_each = var.github_repos
team_id = github_team.admin_team[each.value.team_name].id
repository = github_repository.app_repo[each.key].name
permission = "admin"
for_each = var.github_repos
team_id = github_team.admin_team[each.value.team_name].id
repository = github_repository.app_repo[each.key].name
permission = "admin"
}

resource "github_team_repository" "editor_team" {
for_each = var.github_repos
team_id = github_team.editor_team[each.value.team_name].id
repository = github_repository.app_repo[each.key].name
permission = "push"
for_each = var.github_repos
team_id = github_team.editor_team[each.value.team_name].id
repository = github_repository.app_repo[each.key].name
permission = "push"
}

resource "github_team_repository" "viewer_team" {
for_each = var.github_repos
team_id = github_team.viewer_team[each.value.team_name].id
repository = github_repository.app_repo[each.key].name
permission = "pull"
for_each = var.github_repos
team_id = github_team.viewer_team[each.value.team_name].id
repository = github_repository.app_repo[each.key].name
permission = "pull"
}
Loading