-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathmain.tf
More file actions
110 lines (100 loc) · 4.12 KB
/
Copy pathmain.tf
File metadata and controls
110 lines (100 loc) · 4.12 KB
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
module "services" {
source = "./terraform-modules/services"
}
module "iam" {
source = "./terraform-modules/iam"
name = var.name
project = var.project
depends_on = [module.services.iam_service_id]
}
module "iam-eventarc" {
source = "./terraform-modules/iam-eventarc"
name = var.name
project = var.project
depends_on = [module.services.event_arc_service_id]
}
module "pubsub-projects" {
source = "./terraform-modules/pubsub-projects"
name = var.name
project = var.project
}
module "pubsub-results" {
source = "./terraform-modules/pubsub-results"
name = var.name
project = var.project
}
module "pubsub-scheduler" {
source = "./terraform-modules/pubsub-scheduler"
name = var.name
app_service_region = var.app_service_region
create_app_engine = var.create_app_engine
project = var.project
time_zone = var.time_zone
schedule = var.schedule
schedule_dev = var.schedule_dev
depends_on = [module.services.cloud_scheduler_service_id]
}
module "storage" {
source = "./terraform-modules/storage"
name = var.name
region = var.region
}
module "function-projects" {
source = "./terraform-modules/function-projects"
name = var.name
project = var.project
region = var.region
bucket_name = module.storage.bucket_name
timeout = var.timeout
ingress_settings = var.ingress_settings
runtime = var.runtime
pubsub_topic = module.pubsub-scheduler.pubsub_topic_name
service_account_email = module.iam.service_account_email
service_account_eventarc = module.iam-eventarc.service_account_email
depends_on = [module.services.cloud_functions_service_id, module.services.cloud_build_service_id, module.services.cloud_run_service_id]
}
module "function" {
source = "./terraform-modules/function"
functions = var.functions
name = var.name
project = var.project
region = var.region
bucket_name = module.storage.bucket_name
available_memory = var.available_memory
timeout = var.timeout
ingress_settings = var.ingress_settings
runtime = var.runtime
pubsub_topic = module.pubsub-projects.pubsub_topic_name
service_account_email = module.iam.service_account_email
service_account_eventarc = module.iam-eventarc.service_account_email
depends_on = [module.services.cloud_functions_service_id, module.services.cloud_build_service_id, module.services.cloud_run_service_id, module.services.event_arc_service_id]
}
module "function-slack" {
source = "./terraform-modules/function-slack"
for_each = toset(local.slack_channels)
name = var.name
project = var.project
region = var.region
bucket_name = module.storage.bucket_name
timeout = var.timeout
ingress_settings = var.ingress_settings
runtime = var.runtime
pubsub_topic = module.pubsub-results.pubsub_topic_name
secret_resource_id = module.secret-manager[each.key].secret_resource_id
secret_version_name = module.secret-manager[each.key].secret_version_name
service_account_email = module.iam.service_account_email
service_account_eventarc = module.iam-eventarc.service_account_email
slack_channel = each.key
slack_emoji = var.slack_emoji
slack_username = var.slack_username
depends_on = [module.services.cloud_functions_service_id, module.services.cloud_build_service_id, module.services.cloud_run_service_id]
}
module "secret-manager" {
source = "./terraform-modules/secret-manager"
for_each = local.secrets
region = var.region
app_name = var.name
secret_name = each.key
secret_value = each.value
depends_on = [module.services.secret_manager_service_id]
}