Skip to content

Commit 5a0d974

Browse files
committed
feat: add resources for risk module
1 parent 8df6509 commit 5a0d974

5 files changed

Lines changed: 132 additions & 5 deletions

File tree

base-infrastructure/terraform/app_resources.tf

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ locals {
88
dfs_moses = "32053268-3970-48f3-9b09-c4280cd0b67d"
99
}
1010

11+
risk_module_db_name = "riskmodule"
1112
alerthub_db_name = "alerthubdb"
1213
montandon_db_name = "montandondb"
1314
sdt_db_name = "sdtdb"
@@ -27,6 +28,39 @@ module "risk_module_resources" {
2728
environment = var.environment
2829
resource_group_name = module.resources.resource_group
2930

31+
database_config = {
32+
create_database = true
33+
database_name = local.risk_module_db_name
34+
server_id = module.resources.risk_module_db_server_id
35+
}
36+
37+
storage_config = {
38+
container_refs = [
39+
{
40+
container_ref = "storage"
41+
access_type = "blob"
42+
}
43+
]
44+
45+
enabled = true
46+
storage_account_id = module.resources.risk_module_storage_account_id
47+
storage_account_name = module.resources.risk_module_storage_account_name
48+
}
49+
50+
secrets = {
51+
# DB
52+
DATABASE_NAME = local.risk_module_db_name
53+
DATABASE_HOST = module.resources.risk_module_db_host
54+
DATABASE_USER = module.resources.risk_module_db_user
55+
DATABASE_PASSWORD = module.resources.risk_module_db_user_password
56+
DATABASE_PORT = 5432
57+
}
58+
59+
60+
vault_admin_ids = [
61+
local.user_principal_ids.tc_navin,
62+
local.user_principal_ids.tc_ranjan,
63+
]
3064
}
3165

3266
module "alert_hub_resources" {

base-infrastructure/terraform/output.tf

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,12 @@ output "alert_hub_app_resource_details" {
1111

1212
output "risk_module_app_resource_details" {
1313
value = {
14-
database_name = module.risk_module_resources.database_name
15-
key_vault_name = module.risk_module_resources.key_vault_name
16-
storage_containers = module.risk_module_resources.storage_containers
17-
tenant_id = module.risk_module_resources.tenant_id
18-
workload_id = module.risk_module_resources.workload_client_id
14+
database_name = module.risk_module_resources.database_name
15+
key_vault_name = module.risk_module_resources.key_vault_name
16+
storage_account_name = module.risk_module_resources.storage_account_name
17+
storage_containers = module.risk_module_resources.storage_containers
18+
tenant_id = module.risk_module_resources.tenant_id
19+
workload_id = module.risk_module_resources.workload_client_id
1920
}
2021
}
2122

base-infrastructure/terraform/resources/database.tf

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,3 +219,53 @@ resource "azurerm_postgresql_flexible_server_configuration" "montandon_eoapi_db_
219219
server_id = azurerm_postgresql_flexible_server.montandon_eoapi.id
220220
value = "POSTGIS"
221221
}
222+
223+
224+
# Database for Risk Module --------------------------------------
225+
resource "random_password" "risk_module_db_user" {
226+
length = 16
227+
special = true
228+
229+
lifecycle {
230+
create_before_destroy = true
231+
}
232+
}
233+
234+
resource "azurerm_postgresql_flexible_server" "risk_module" {
235+
name = "risk-module-${var.environment}-psql-flexible-server"
236+
resource_group_name = data.azurerm_resource_group.ifrcgo.name
237+
location = data.azurerm_resource_group.ifrcgo.location
238+
administrator_login = "postgres"
239+
administrator_password = random_password.risk_module_db_user.result
240+
backup_retention_days = 35
241+
auto_grow_enabled = true
242+
sku_name = "GP_Standard_D2ds_v5"
243+
delegated_subnet_id = azurerm_subnet.postgres.id
244+
private_dns_zone_id = azurerm_private_dns_zone.ifrcgo.id
245+
public_network_access_enabled = false
246+
zone = 1
247+
248+
lifecycle {
249+
ignore_changes = [
250+
version
251+
]
252+
}
253+
254+
depends_on = [
255+
azurerm_private_dns_zone_virtual_network_link.ifrcgo
256+
]
257+
}
258+
259+
resource "azurerm_postgresql_flexible_server_firewall_rule" "risk_module_db_vnet_rule" {
260+
name = "risk-module-${var.environment}-psql-vnet-access-fw-rule"
261+
server_id = azurerm_postgresql_flexible_server.risk_module.id
262+
start_ip_address = cidrhost(azurerm_virtual_network.ifrcgo-cluster.address_space[0], 0)
263+
end_ip_address = cidrhost(azurerm_virtual_network.ifrcgo-cluster.address_space[0], -1)
264+
}
265+
266+
# Enable extensions for risk_module db
267+
resource "azurerm_postgresql_flexible_server_configuration" "risk_module_db_extensions" {
268+
name = "azure.extensions"
269+
server_id = azurerm_postgresql_flexible_server.risk_module.id
270+
value = "POSTGIS"
271+
}

base-infrastructure/terraform/resources/output.tf

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,31 @@ output "sdt_storage_account_id" {
117117
output "sdt_storage_account_name" {
118118
value = azurerm_storage_account.sdt.name
119119
}
120+
121+
# Risk Module ----------------------------------------
122+
123+
# DB
124+
output "risk_module_db_server_id" {
125+
value = azurerm_postgresql_flexible_server.risk_module.id
126+
}
127+
128+
output "risk_module_db_host" {
129+
value = azurerm_postgresql_flexible_server.risk_module.fqdn
130+
}
131+
132+
output "risk_module_db_user" {
133+
value = azurerm_postgresql_flexible_server.risk_module.administrator_login
134+
}
135+
136+
output "risk_module_db_user_password" {
137+
value = random_password.risk_module_db_user.result
138+
}
139+
140+
# Storage
141+
output "risk_module_storage_account_id" {
142+
value = azurerm_storage_account.risk_module.id
143+
}
144+
145+
output "risk_module_storage_account_name" {
146+
value = azurerm_storage_account.risk_module.name
147+
}

base-infrastructure/terraform/resources/storage.tf

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,17 @@ resource "azurerm_storage_account" "montandon" {
5151
account_tier = "Standard"
5252
account_replication_type = "LRS"
5353
}
54+
55+
# Risk module --------------------------------------
56+
resource "random_integer" "risk_module_storage_account_suffix" {
57+
min = 1000
58+
max = 9999
59+
}
60+
61+
resource "azurerm_storage_account" "risk_module" {
62+
name = "riskmodule${var.environment}${random_integer.risk_module_storage_account_suffix.result}"
63+
resource_group_name = data.azurerm_resource_group.ifrcgo.name
64+
location = data.azurerm_resource_group.ifrcgo.location
65+
account_tier = "Standard"
66+
account_replication_type = "LRS"
67+
}

0 commit comments

Comments
 (0)