Skip to content

Commit 0ea5e22

Browse files
authored
Update/Create Crawlers, Secrets, and Temp Databases for Benefits Housing Needs and Revenues (#2299)
* add secretes and crawlers for benefits housing needs and revenues * add crawlers * add CombineCompatibleSchemas * remove the unused creds * create two databases * update the comments
1 parent 62cebb8 commit 0ea5e22

File tree

4 files changed

+98
-22
lines changed

4 files changed

+98
-22
lines changed

terraform/etl/06-aws-secrets-manager.tf

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,40 @@ data "aws_secretsmanager_secret" "tascomi_api_private_key" {
2828

2929
data "aws_ssm_parameter" "tascomi_api_private_key_arn" {
3030
name = "/${local.identifier_prefix}/secrets_manager/tascomi_api_private_key/arn"
31-
}
31+
}
32+
33+
# Academy SQL Server credentials for Revenues department
34+
resource "aws_secretsmanager_secret" "revenues_academy_sql_server_creds" {
35+
name = "/revenues/academy_sql_server_creds"
36+
description = "SQL Server credentials for Academy database ingestion - Revenues department"
37+
tags = module.tags.values
38+
}
39+
40+
resource "aws_secretsmanager_secret_version" "revenues_academy_sql_server_creds" {
41+
secret_id = aws_secretsmanager_secret.revenues_academy_sql_server_creds.id
42+
secret_string = jsonencode({
43+
value = "UPDATE_IN_CONSOLE"
44+
})
45+
46+
lifecycle {
47+
ignore_changes = [secret_string]
48+
}
49+
}
50+
51+
# Academy SQL Server credentials for Benefits and Housing Needs department
52+
resource "aws_secretsmanager_secret" "benefits_housing_needs_academy_sql_server_creds" {
53+
name = "/benefits-housing-needs/academy_sql_server_creds"
54+
description = "SQL Server credentials for Academy database ingestion - Benefits and Housing Needs department"
55+
tags = module.tags.values
56+
}
57+
58+
resource "aws_secretsmanager_secret_version" "benefits_housing_needs_academy_sql_server_creds" {
59+
secret_id = aws_secretsmanager_secret.benefits_housing_needs_academy_sql_server_creds.id
60+
secret_string = jsonencode({
61+
value = "UPDATE_IN_CONSOLE"
62+
})
63+
64+
lifecycle {
65+
ignore_changes = [secret_string]
66+
}
67+
}

terraform/etl/60-airflow-etl-used-crawlers.tf

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,3 +173,53 @@ resource "aws_glue_crawler" "google_sheet_ingestion_raw_zone" {
173173
})
174174
tags = module.tags.values
175175
}
176+
177+
178+
# Academy crawlers for raw zone
179+
resource "aws_glue_crawler" "benefits_housing_needs_academy_raw_zone" {
180+
count = local.is_live_environment ? 1 : 0
181+
name = "benefits-housing-needs-academy-raw-zone"
182+
role = module.department_benefits_and_housing_needs_data_source.glue_role_arn
183+
database_name = aws_glue_catalog_database.temp_benefits_housing_needs_academy.name # This is a temp database will change to raw zone database when ready
184+
185+
s3_target {
186+
path = "s3://${module.raw_zone_data_source.bucket_id}/benefits-housing-needs/academy"
187+
}
188+
189+
configuration = jsonencode({
190+
Version = 1.0
191+
Grouping = {
192+
TableLevelConfiguration = 4
193+
TableGroupingPolicy = "CombineCompatibleSchemas"
194+
}
195+
CrawlerOutput = {
196+
Partitions = { AddOrUpdateBehavior = "InheritFromTable" }
197+
Tables = { AddOrUpdateBehavior = "MergeNewColumns" }
198+
}
199+
})
200+
tags = module.tags.values
201+
}
202+
203+
resource "aws_glue_crawler" "revenues_academy_raw_zone" {
204+
count = local.is_live_environment ? 1 : 0
205+
name = "revenues-academy-raw-zone"
206+
role = module.department_revenues_data_source.glue_role_arn
207+
database_name = aws_glue_catalog_database.temp_revenues_academy.name # This is a temp database will change to raw zone database when ready
208+
209+
s3_target {
210+
path = "s3://${module.raw_zone_data_source.bucket_id}/revenues/academy"
211+
}
212+
213+
configuration = jsonencode({
214+
Version = 1.0
215+
Grouping = {
216+
TableLevelConfiguration = 4
217+
TableGroupingPolicy = "CombineCompatibleSchemas"
218+
}
219+
CrawlerOutput = {
220+
Partitions = { AddOrUpdateBehavior = "InheritFromTable" }
221+
Tables = { AddOrUpdateBehavior = "MergeNewColumns" }
222+
}
223+
})
224+
tags = module.tags.values
225+
}

terraform/etl/60-airflow-variables-and-connnections.tf

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,22 +92,3 @@ resource "aws_secretsmanager_secret_version" "mtfh_secrets" {
9292
ignore_changes = [secret_string]
9393
}
9494
}
95-
96-
97-
# Academy SQL Server credentials
98-
resource "aws_secretsmanager_secret" "academy_sql_server_credentials" {
99-
name = "airflow/variables/academy_sql_server_credentials"
100-
description = "SQL Server credentials for Academy database ingestion"
101-
tags = module.tags.values
102-
}
103-
104-
resource "aws_secretsmanager_secret_version" "academy_sql_server_credentials" {
105-
secret_id = aws_secretsmanager_secret.academy_sql_server_credentials.id
106-
secret_string = jsonencode({
107-
value = "UPDATE_IN_CONSOLE"
108-
})
109-
110-
lifecycle {
111-
ignore_changes = [secret_string]
112-
}
113-
}

terraform/etl/61-aws-glue-catalog-database.tf

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,17 @@ resource "aws_glue_catalog_database" "housing_nec_migration_database" {
3030
}
3131
}
3232

33-
resource "aws_glue_catalog_database" "temp_academy_ingestion" {
34-
name = "temp_academy_ingestion"
33+
34+
resource "aws_glue_catalog_database" "temp_revenues_academy" {
35+
name = "temp_revenues_academy"
36+
37+
lifecycle {
38+
prevent_destroy = true
39+
}
40+
}
41+
42+
resource "aws_glue_catalog_database" "temp_benefits_housing_needs_academy" {
43+
name = "temp_benefits_housing_needs_academy"
3544

3645
lifecycle {
3746
prevent_destroy = true

0 commit comments

Comments
 (0)