Skip to content

Commit 550529b

Browse files
wip
1 parent a70e0e6 commit 550529b

File tree

3 files changed

+97
-96
lines changed

3 files changed

+97
-96
lines changed

infrastructure/environments/poc/variables.tfvars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
deploy_database_as_container = true
12
features = {
23
front_door = false
34
hub_and_spoke = false
Lines changed: 90 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,62 @@
1-
# data "azurerm_private_dns_zone" "postgres" {
2-
# count = var.features.private_networking ? 1 : 0
3-
4-
# provider = azurerm.hub
5-
6-
# name = "privatelink.postgres.database.azure.com"
7-
# resource_group_name = "rg-hub-${var.hub}-uks-private-dns-zones"
8-
# }
9-
10-
# # Don't deploy if deploy_database_as_container is true
11-
# module "postgres" {
12-
# count = var.deploy_database_as_container ? 0 : 1
13-
14-
# source = "../dtos-devops-templates/infrastructure/modules/postgresql-flexible"
15-
16-
# # postgresql Server
17-
# name = "postgres-${var.app_short_name}-${var.environment}-uks"
18-
# resource_group_name = azurerm_resource_group.main.name
19-
# location = var.region
20-
21-
# backup_retention_days = var.postgres_backup_retention_days
22-
# geo_redundant_backup_enabled = var.postgres_geo_redundant_backup_enabled
23-
# postgresql_admin_object_id = data.azuread_group.postgres_sql_admin_group.object_id
24-
# postgresql_admin_principal_name = var.postgres_sql_admin_group
25-
# postgresql_admin_principal_type = "Group"
26-
# administrator_login = local.database_user
27-
# admin_identities = [module.db_connect_identity[0]]
28-
29-
# # Diagnostic Settings
30-
# log_analytics_workspace_id = var.log_analytics_workspace_audit_id
31-
# monitor_diagnostic_setting_postgresql_server_enabled_logs = ["PostgreSQLLogs", "PostgreSQLFlexSessions", "PostgreSQLFlexQueryStoreRuntime", "PostgreSQLFlexQueryStoreWaitStats", "PostgreSQLFlexTableStats", "PostgreSQLFlexDatabaseXacts"]
32-
# monitor_diagnostic_setting_postgresql_server_metrics = ["AllMetrics"]
33-
34-
# sku_name = var.postgres_sku_name
35-
# storage_mb = var.postgres_storage_mb
36-
# storage_tier = var.postgres_storage_tier
37-
38-
# server_version = "16"
39-
# tenant_id = data.azurerm_client_config.current.tenant_id
40-
41-
# private_endpoint_properties = var.features.private_networking ? {
42-
# private_dns_zone_ids_postgresql = [data.azurerm_private_dns_zone.postgres[0].id]
43-
# private_endpoint_enabled = true
44-
# private_endpoint_subnet_id = var.postgres_subnet_id
45-
# private_endpoint_resource_group_name = azurerm_resource_group.main.name
46-
# private_service_connection_is_manual = false
47-
# } : null
48-
49-
# databases = {
50-
# db1 = {
51-
# collation = "en_US.utf8"
52-
# charset = "UTF8"
53-
# max_size_gb = 10
54-
# name = local.database_name
55-
# }
56-
# }
57-
58-
# tags = {}
59-
# }
1+
data "azurerm_private_dns_zone" "postgres" {
2+
count = var.features.private_networking ? 1 : 0
3+
4+
provider = azurerm.hub
5+
6+
name = "privatelink.postgres.database.azure.com"
7+
resource_group_name = "rg-hub-${var.hub}-uks-private-dns-zones"
8+
}
9+
10+
# Don't deploy if deploy_database_as_container is true
11+
module "postgres" {
12+
count = var.deploy_database_as_container ? 0 : 1
13+
14+
source = "../dtos-devops-templates/infrastructure/modules/postgresql-flexible"
15+
16+
# postgresql Server
17+
name = "postgres-${var.app_short_name}-${var.environment}-uks"
18+
resource_group_name = azurerm_resource_group.main.name
19+
location = var.region
20+
21+
backup_retention_days = var.postgres_backup_retention_days
22+
geo_redundant_backup_enabled = var.postgres_geo_redundant_backup_enabled
23+
postgresql_admin_object_id = data.azuread_group.postgres_sql_admin_group.object_id
24+
postgresql_admin_principal_name = var.postgres_sql_admin_group
25+
postgresql_admin_principal_type = "Group"
26+
administrator_login = local.database_user
27+
admin_identities = [module.db_connect_identity[0]]
28+
29+
# Diagnostic Settings
30+
log_analytics_workspace_id = var.log_analytics_workspace_audit_id
31+
monitor_diagnostic_setting_postgresql_server_enabled_logs = ["PostgreSQLLogs", "PostgreSQLFlexSessions", "PostgreSQLFlexQueryStoreRuntime", "PostgreSQLFlexQueryStoreWaitStats", "PostgreSQLFlexTableStats", "PostgreSQLFlexDatabaseXacts"]
32+
monitor_diagnostic_setting_postgresql_server_metrics = ["AllMetrics"]
33+
34+
sku_name = var.postgres_sku_name
35+
storage_mb = var.postgres_storage_mb
36+
storage_tier = var.postgres_storage_tier
37+
38+
server_version = "16"
39+
tenant_id = data.azurerm_client_config.current.tenant_id
40+
41+
private_endpoint_properties = var.features.private_networking ? {
42+
private_dns_zone_ids_postgresql = [data.azurerm_private_dns_zone.postgres[0].id]
43+
private_endpoint_enabled = true
44+
private_endpoint_subnet_id = var.postgres_subnet_id
45+
private_endpoint_resource_group_name = azurerm_resource_group.main.name
46+
private_service_connection_is_manual = false
47+
} : null
48+
49+
databases = {
50+
db1 = {
51+
collation = "en_US.utf8"
52+
charset = "UTF8"
53+
max_size_gb = 10
54+
name = local.database_name
55+
}
56+
}
57+
58+
tags = {}
59+
}
6060

6161
module "db_connect_identity" {
6262
count = var.deploy_database_as_container ? 0 : 1
@@ -67,34 +67,34 @@ module "db_connect_identity" {
6767
uai_name = "mi-${var.app_short_name}-${var.environment}-db-connect"
6868
}
6969

70-
# resource "random_password" "admin_password" {
71-
# count = var.deploy_database_as_container ? 1 : 0
72-
73-
# length = 30
74-
# special = true
75-
# override_special = "!@#$%^&*()-_=+"
76-
# }
77-
78-
# module "database_container" {
79-
# count = var.deploy_database_as_container ? 1 : 0
80-
81-
# providers = {
82-
# azurerm = azurerm
83-
# azurerm.hub = azurerm.hub
84-
# }
85-
86-
# source = "../dtos-devops-templates/infrastructure/modules/container-app"
87-
# name = "${var.app_short_name}-db-${var.environment}"
88-
# container_app_environment_id = var.container_app_environment_id
89-
# docker_image = "postgres:16"
90-
# secret_variables = var.deploy_database_as_container ? { POSTGRES_PASSWORD = resource.random_password.admin_password[0].result } : {}
91-
# environment_variables = {
92-
# POSTGRES_USER = local.database_user
93-
# POSTGRES_DB = local.database_name
94-
# }
95-
# resource_group_name = azurerm_resource_group.main.name
96-
# is_tcp_app = true
97-
# # postgres has a port of 5432
98-
# port = 5432
99-
# exposed_port = local.database_port
100-
# }
70+
resource "random_password" "admin_password" {
71+
count = var.deploy_database_as_container ? 1 : 0
72+
73+
length = 30
74+
special = true
75+
override_special = "!@#$%^&*()-_=+"
76+
}
77+
78+
module "database_container" {
79+
count = var.deploy_database_as_container ? 1 : 0
80+
81+
providers = {
82+
azurerm = azurerm
83+
azurerm.hub = azurerm.hub
84+
}
85+
86+
source = "../dtos-devops-templates/infrastructure/modules/container-app"
87+
name = "${var.app_short_name}-db-${var.environment}"
88+
container_app_environment_id = var.container_app_environment_id
89+
docker_image = "postgres:16"
90+
secret_variables = var.deploy_database_as_container ? { POSTGRES_PASSWORD = resource.random_password.admin_password[0].result } : {}
91+
environment_variables = {
92+
POSTGRES_USER = local.database_user
93+
POSTGRES_DB = local.database_name
94+
}
95+
resource_group_name = azurerm_resource_group.main.name
96+
is_tcp_app = true
97+
# postgres has a port of 5432
98+
port = 5432
99+
exposed_port = local.database_port
100+
}

infrastructure/modules/container-apps/variables.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,12 @@ locals {
173173
DATABASE_PORT = local.database_port
174174
}
175175

176-
# azure_db_env = {
177-
# AZURE_CLIENT_ID = var.deploy_database_as_container ? null : module.db_connect_identity[0].client_id
178-
# DATABASE_HOST = var.deploy_database_as_container ? null : module.postgres[0].host
179-
# DATABASE_NAME = var.deploy_database_as_container ? null : module.postgres[0].database_names[0]
180-
# DATABASE_USER = var.deploy_database_as_container ? null : module.db_connect_identity[0].name
181-
# }
176+
azure_db_env = {
177+
AZURE_CLIENT_ID = var.deploy_database_as_container ? null : module.db_connect_identity[0].client_id
178+
DATABASE_HOST = var.deploy_database_as_container ? null : module.postgres[0].host
179+
DATABASE_NAME = var.deploy_database_as_container ? null : module.postgres[0].database_names[0]
180+
DATABASE_USER = var.deploy_database_as_container ? null : module.db_connect_identity[0].name
181+
}
182182

183183
storage_account_name = "st${var.app_short_name}${var.environment}uks"
184184
storage_containers = {}

0 commit comments

Comments
 (0)