# Deploy dis-demo-pgsl https://github.com/dis-hackaton/demo-apps/tree/main/dis-demo-pgsql in azure conatiner app to serve as backend resource "random_string" "name" { length = 6 special = false upper = false numeric = false } resource "azurerm_user_assigned_identity" "acaghr_managed_identity" { name = "${var.name_prefix}-${random_string.name.result}-aca-mi" location = azurerm_resource_group.rg.location resource_group_name = azurerm_resource_group.rg.name } resource "azurerm_container_app_environment" "container_app_environment" { name = "${var.name_prefix}-${random_string.name.result}-acaenv" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location } resource "azurerm_container_app" "container_app" { name = "${var.name_prefix}-${random_string.name.result}-aca" resource_group_name = azurerm_resource_group.rg.name container_app_environment_id = azurerm_container_app_environment.container_app_environment.id revision_mode = "Single" identity { type = "UserAssigned" identity_ids = [ azurerm_user_assigned_identity.acaghr_managed_identity.id ] } registry { identity = azurerm_user_assigned_identity.acaghr_managed_identity.id server = data.azurerm_container_registry.altinncr.login_server } ingress { allow_insecure_connections = false target_port = 8080 transport = "auto" external_enabled = true client_certificate_mode = "ignore" traffic_weight { percentage = 100 latest_revision = true } } template { container { name = "dis-demo-pgsql" image = "${data.azurerm_container_registry.altinncr.login_server}/dis-hackaton/dis-demo-pgsql:0.0.1" cpu = "0.5" memory = "1Gi" args = [ "webserver", "--auth-enabled" ] startup_probe { path = "/swagger/swagger.json" initial_delay = 0 interval_seconds = 1 failure_count_threshold = 10 timeout = 1 port = 8080 transport = "HTTP" } readiness_probe { path = "/swagger/swagger.json" initial_delay = 0 interval_seconds = 1 failure_count_threshold = 3 success_count_threshold = 1 timeout = 1 port = 8080 transport = "HTTP" } liveness_probe { path = "/swagger/swagger.json" initial_delay = 0 interval_seconds = 1 failure_count_threshold = 3 timeout = 1 port = 8080 transport = "HTTP" } } min_replicas = 0 max_replicas = 1 http_scale_rule { name = "http-scale-rule" concurrent_requests = 1000 } } } resource "azurerm_role_assignment" "altinncr_acrpull" { principal_id = azurerm_user_assigned_identity.acaghr_managed_identity.principal_id role_definition_name = "AcrPull" scope = data.azurerm_container_registry.altinncr.id skip_service_principal_aad_check = true }