-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
170 lines (148 loc) · 7.96 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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
data "google_client_config" "default" {}
data "google_compute_regions" "available" {}
module "comet_gke" {
source = "./modules/comet_gke"
count = var.enable_gke ? 1 : 0
project_id = var.project_id
region = var.region
environment = var.environment
comet_vpc_zones = var.enable_vpc ? module.comet_vpc[0].available_zones : var.comet_vpc_zones
comet_vpc_name = var.enable_vpc ? module.comet_vpc[0].comet_vpc_name : var.comet_vpc_name
comet_vpc_subnet_name = var.enable_vpc ? module.comet_vpc[0].comet_vpc_subnet_name : var.comet_vpc_subnet_name
gke_pods_cidr_name = var.enable_vpc ? module.comet_vpc[0].gke_pods_cidr_name : var.gke_pods_cidr_name
gke_services_cidr_name = var.enable_vpc ? module.comet_vpc[0].gke_services_cidr_name : var.gke_services_cidr_name
gke_sa_s3_bucket_names = concat(
var.enable_s3 ? [module.comet_s3[0].storage_bucket_name] : [],
var.enable_mpm_infra ? ["comet-${var.environment}-druid-bucket-${var.project_id}", "comet-${var.environment}-airflow-bucket-${var.project_id}"] : [],
var.enable_s3 ? [] : [var.s3_existing_bucket_name]
)
gke_regional = var.gke_regional
gke_kubernetes_version = var.gke_kubernetes_version
gke_create_service_account = var.gke_create_service_account
gke_http_load_balancing = var.gke_http_load_balancing
gke_network_policy = var.gke_network_policy
gke_network_policy_provider = var.gke_network_policy_provider
gke_horizontal_pod_autoscaling = var.gke_horizontal_pod_autoscaling
gke_enable_vertical_pod_autoscaling = var.gke_enable_vertical_pod_autoscaling
gke_filestore_csi_driver = var.gke_filestore_csi_driver
gke_enable_cost_allocation = var.gke_enable_cost_allocation
gke_remove_default_node_pool = var.gke_remove_default_node_pool
gke_release_channel = var.gke_release_channel
gke_nodepool_machine_type = var.gke_nodepool_machine_type
gke_nodepool_min_count = var.gke_nodepool_min_count
gke_nodepool_max_count = var.gke_nodepool_max_count
gke_nodepool_local_ssd_count = var.gke_nodepool_local_ssd_count
gke_nodepool_spot = var.gke_nodepool_spot
gke_nodepool_disk_size_gb = var.gke_nodepool_disk_size_gb
gke_nodepool_disk_type = var.gke_nodepool_disk_type
gke_nodepool_image_type = var.gke_nodepool_image_type
gke_nodepool_enable_gcfs = var.gke_nodepool_enable_gcfs
gke_nodepool_enable_gvnic = var.gke_nodepool_enable_gvnic
gke_nodepool_auto_repair = var.gke_nodepool_auto_repair
gke_nodepool_auto_upgrade = var.gke_nodepool_auto_upgrade
gke_nodepool_preemptible = var.gke_nodepool_preemptible
enable_mpm_infra = var.enable_mpm_infra
gke_nodepool_druid_count = var.gke_nodepool_druid_count
gke_nodepool_druid_machine = var.gke_nodepool_druid_machine
gke_nodepool_zookeeper_count = var.gke_nodepool_zookeeper_count
gke_nodepool_zookeeper_machine = var.gke_nodepool_zookeeper_machine
gke_nodepool_airflow_count = var.gke_nodepool_airflow_count
gke_nodepool_airflow_machine = var.gke_nodepool_airflow_machine
}
module "comet_lb" {
source = "./modules/comet_lb"
count = var.enable_lb ? 1 : 0
project_id = var.project_id
region = var.region
environment = var.environment
lb_enable_ssl = var.lb_enable_ssl
lb_managed_ssl_certificate_domains = var.lb_managed_ssl_certificate_domains
lb_use_provided_ssl_certificates = var.lb_use_provided_ssl_certificates
lb_provided_ssl_certificates = var.lb_provided_ssl_certificates
lb_cloudnat_router_name = var.enable_vpc ? module.comet_vpc[0].vpc_cloudnat_router_name : var.lb_cloudnat_router_name
lb_vpc = var.enable_vpc ? module.comet_vpc[0].comet_vpc_name : var.comet_vpc_name
lb_comet_subnet = var.enable_vpc ? module.comet_vpc[0].comet_vpc_subnet_name : var.comet_vpc_subnet_name
lb_backend_instance_group = var.enable_vm ? module.comet_vm[0].instance_group : var.lb_backend_instance_group
lb_backend_timeout_sec = var.lb_backend_timeout_sec
lb_backend_enable_cdn = var.lb_backend_enable_cdn
lb_health_check_logging = var.lb_health_check_logging
lb_backend_service_logging = var.lb_backend_service_logging
lb_logging_sample_rate = var.lb_logging_sample_rate
lb_enable_iap_config = var.lb_enable_iap_config
}
module "comet_memorystore" {
source = "./modules/comet_memorystore"
count = var.enable_memorystore ? 1 : 0
region = var.region
environment = var.environment
comet_vpc_name = var.enable_vpc ? module.comet_vpc[0].comet_vpc_name : var.comet_vpc_name
memorystore_redis_version = var.memorystore_redis_version
memorystore_instance_tier = var.memorystore_instance_tier
memorystore_memory_size_gb = var.memorystore_memory_size_gb
memorystore_maintenance_day = var.memorystore_maintenance_day
memorystore_maintenance_start_hour = var.memorystore_maintenance_start_hour
memorystore_maintenance_start_min = var.memorystore_maintenance_start_min
memorystore_redis_auth = var.memorystore_redis_auth
}
module "comet_mysql" {
source = "./modules/comet_mysql"
count = var.enable_mysql ? 1 : 0
project_id = var.project_id
region = var.region
environment = var.environment
comet_vpc_name = var.enable_vpc ? module.comet_vpc[0].comet_vpc_name : var.comet_vpc_name
comet_vpc_zones = var.enable_vpc ? module.comet_vpc[0].available_zones : var.comet_vpc_zones
db_cloud_sql_proxy_required = var.db_cloud_sql_proxy_required
db_random_instance_name = var.db_random_instance_name
db_deletion_protection = var.db_deletion_protection
db_version = var.db_version
db_instance_tier = var.db_instance_tier
db_disk_size = var.db_disk_size
db_assign_public_ip = var.db_assign_public_ip
db_user = var.db_user
db_password = var.db_password
depends_on = [module.comet_vpc]
}
module "comet_s3" {
source = "./modules/comet_s3"
count = var.enable_s3 ? 1 : 0
project_id = var.project_id
environment = var.environment
s3_location = var.region
s3_force_destroy = var.s3_force_destroy
s3_storage_class = var.s3_storage_class
s3_uniform_bucket_level_access = var.s3_uniform_bucket_level_access
s3_versioning = var.s3_versioning
enable_mpm_infra = var.enable_mpm_infra
}
module "comet_vm" {
source = "./modules/comet_vm"
count = var.enable_vm ? 1 : 0
project_id = var.project_id
region = var.region
environment = var.environment
enable_mysql = var.enable_mysql
vm_vpc = var.enable_vpc ? module.comet_vpc[0].comet_vpc_name : var.comet_vpc_name
vm_subnetwork = var.enable_vpc ? module.comet_vpc[0].comet_vpc_subnet_name : var.comet_vpc_subnet_name
vm_source_image_family = var.vm_source_image_family
vm_machine_type = var.vm_machine_type
vm_disk_type = var.vm_disk_type
vm_disk_size_gb = var.vm_disk_size_gb
vm_disk_auto_delete = var.vm_disk_auto_delete
vm_enable_ssh = var.vm_enable_ssh
vm_enable_public_ip = var.vm_enable_public_ip
vm_mysql_connection_name = var.enable_mysql ? module.comet_mysql[0].mysql_connection_name : null
vm_sa_s3_bucket_name = var.enable_s3 ? module.comet_s3[0].storage_bucket_name : var.s3_existing_bucket_name
}
module "comet_vpc" {
source = "./modules/comet_vpc"
count = var.enable_vpc ? 1 : 0
project_id = var.project_id
region = var.region
environment = var.environment
vpc_subnet_cidr = var.vpc_subnet_cidr
vpc_subnet_private_access = var.vpc_subnet_private_access
vpc_subnet_flow_logs = var.vpc_subnet_flow_logs
gke_pods_cidr = var.gke_pods_cidr
gke_services_cidr = var.gke_services_cidr
}