data "azurerm_client_config" "current" { } resource "azurerm_log_analytics_workspace" "log_analytics_workspace" { name = module.environment.log_analytics_workspace_name location = data.azurerm_resource_group.resource_group.location resource_group_name = data.azurerm_resource_group.resource_group.name sku = "PerGB2018" retention_in_days = 30 } resource "azurerm_container_app_environment" "container_app_environment" { name = module.environment.container_app_environment_name location = data.azurerm_resource_group.resource_group.location resource_group_name = data.azurerm_resource_group.resource_group.name log_analytics_workspace_id = azurerm_log_analytics_workspace.log_analytics_workspace.id } resource "azurerm_container_app" "container_app_api" { name = module.environment.container_app_api_name container_app_environment_id = azurerm_container_app_environment.container_app_environment.id resource_group_name = data.azurerm_resource_group.resource_group.name revision_mode = "Single" registry { server = "index.docker.io" username = var.DOCKER_IO_USERNAME password_secret_name = "docker-io-password" } dapr { app_id = module.environment.container_app_api_dapr_app_id app_port = 3000 } template { min_replicas = 0 max_replicas = 2 container { name = module.environment.container_app_api_container_name image = module.environment.container_app_api_container_image cpu = 0.25 memory = "0.5Gi" env { name = "AZURE_STORAGE_CONNECTION_STRING" secret_name = "azure-storage-connection-string" } env { name = "CLIENT_ID" secret_name = "client-id" } env { name = "CLIENT_SECRET" secret_name = "client-secret" } env { name = "TENANT_ID" secret_name = "tenant-id" } } } ingress { allow_insecure_connections = false external_enabled = true target_port = 9090 transport = "auto" traffic_weight { latest_revision = true percentage = 100 } } secret { name = "docker-io-password" value = var.DOCKER_IO_PASSWORD } secret { name = "azure-storage-connection-string" value = var.AZURE_STORAGE_CONNECTION_STRING } secret { name = "client-id" value = var.CLIENT_ID } secret { name = "client-secret" value = var.CLIENT_SECRET } secret { name = "tenant-id" value = var.TENANT_ID } lifecycle { ignore_changes = [ template[0].container[0].image ] } } resource "azurerm_container_app" "container_app_app" { name = module.environment.container_app_app_name container_app_environment_id = azurerm_container_app_environment.container_app_environment.id resource_group_name = data.azurerm_resource_group.resource_group.name revision_mode = "Single" registry { server = "index.docker.io" username = var.DOCKER_IO_USERNAME password_secret_name = "docker-io-password" } template { min_replicas = 0 max_replicas = 2 container { name = module.environment.container_app_app_container_name image = module.environment.container_app_app_container_image cpu = 0.25 memory = "0.5Gi" } } ingress { allow_insecure_connections = false external_enabled = true target_port = 8080 transport = "auto" traffic_weight { latest_revision = true percentage = 100 } } secret { name = "docker-io-password" value = var.DOCKER_IO_PASSWORD } lifecycle { ignore_changes = [ template[0].container[0].image ] } } # resource "azurerm_container_app_custom_domain" "custom_domain" { # name = trimsuffix(trimprefix(azurerm_dns_txt_record.dns_txt_record.fqdn, "asuid."), ".") # container_app_id = azurerm_container_app.container_app_app.id # lifecycle { # ignore_changes = [ certificate_binding_type, container_app_environment_certificate_id ] # } # }