-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.tf
134 lines (108 loc) · 3.77 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
provider "aws" {
version = "3.20.0"
region = var.region
}
module "network" {
source = "./network"
region = var.region
namespace = var.namespace
environment = var.environment
name = "${var.project_name}-${var.environment}vpc"
cidr_block = var.cidr_block
availability_zones = var.availability_zones
}
module "rds" {
source = "./rds"
project_name = var.project_name
environment = var.environment
region = var.region
datetime = local.datetime
db_username = var.db_username
db_name = var.db_name
db_password = var.db_password
db_port = var.db_port
// Use either instance to pull latest snaphsot for DB
// !! Does not currently work if AWS Provider is in a different region
db_instance_id_migration = var.db_instance_id_migration
db_instance_region_migration = var.db_instance_region_migration
// OR specify snapshot directly
db_snapshot_migration = var.db_snapshot_migration
// Module Network variables
vpc_id = module.network.vpc_id
private_subnet_ids = module.network.private_subnet_ids
private_subnet_cidrs = module.network.private_subnet_cidrs
bastion_security_group_id = module.bastion.security_group_id
}
module "applicationlb" {
source = "./applicationlb"
// Input from other Modules
vpc_id = module.network.vpc_id
public_subnet_ids = module.network.public_subnet_ids
acm_certificate_arn = module.acm.acm_certificate_arn
// Input from Variables
account_id = var.account_id
region = var.region
environment = var.environment
project_name = var.project_name
// Container Variables
container_port = var.container_port
task_name = local.task_name
tags = var.tags
}
module "ecs" {
source = "./ecs-fargate"
// Input from other Modules
vpc_id = module.network.vpc_id
public_subnet_ids = module.network.public_subnet_ids
db_security_group_id = module.rds.db_security_group_id
bastion_security_group_id = module.bastion.security_group_id
aws_ssm_db_hostname_arn = module.rds.aws_ssm_db_hostname_arn
aws_ssm_db_password_arn = module.rds.aws_ssm_db_password_arn
alb_security_group_id = module.applicationlb.security_group_id
alb_target_group_arn = module.applicationlb.alb_target_group_arn
// Input from Variables
account_id = var.account_id
region = var.region
environment = var.environment
project_name = var.project_name
// Container Variables
desired_count = var.desired_count
container_memory = var.container_memory
container_cpu = var.container_cpu
container_port = var.container_port
container_name = local.container_name
cluster_name = local.cluster_name
task_name = local.task_name
// image_tag = var.image_tag
depends_on = [ module.applicationlb ]
}
module "r53" {
source = "./r53"
// Input from other Modules
alb_external_dns = module.applicationlb.lb_dns_name
// Input from Variables
domain_name = var.domain_name
host_names = var.host_names
}
module "bastion" {
source = "./bastion-gh"
// Input from other Modules
vpc_id = module.network.vpc_id
public_subnet_ids = module.network.public_subnet_ids
// Input from Variables
account_id = var.account_id
region = var.region
bastion_name = "bastion-${var.project_name}-${var.environment}"
bastion_instance_type = var.bastion_instance_type
cron_key_update_schedule = var.cron_key_update_schedule
github_usernames = var.github_usernames
}
module "acm" {
source = "./acm"
// Input from Variables
domain_name = var.domain_name
// subject_alternative_names = [var.host_name]
}
module "github_action" {
source = "./github_action"
}