diff --git a/terraform-unity/modules/terraform-unity-sps-airflow/main.tf b/terraform-unity/modules/terraform-unity-sps-airflow/main.tf index 3900926..bc1827e 100644 --- a/terraform-unity/modules/terraform-unity-sps-airflow/main.tf +++ b/terraform-unity/modules/terraform-unity-sps-airflow/main.tf @@ -820,6 +820,31 @@ resource "aws_ssm_parameter" "airflow_api_url" { }) } +resource "aws_ssm_parameter" "unity_proxy_airflow_ui" { + name = format("/%s", join("/", compact(["unity", var.project, var.venue, "cs", "management", "proxy", "configurations", "015-sps-airflow-ui"]))) + description = "The unity-proxy configuration for the Airflow UI." + type = "String" + value = <<-EOT + + + ProxyPassReverse "/" + + + ProxyPassMatch "http://${data.kubernetes_ingress_v1.airflow_ingress.status[0].load_balancer[0].ingress[0].hostname}:5000" + ProxyPreserveHost On + FallbackResource /management/index.html + AddOutputFilterByType INFLATE;SUBSTITUTE;DEFLATE text/html + Substitute "s|\"/(?!sps/)([^\"]+)|\"/sps/$1|q" + + +EOT + tags = merge(local.common_tags, { + Name = format(local.resource_name_prefix, "httpd-proxy-config-airflow") + Component = "SSM" + Stack = "SSM" + }) +} + resource "aws_ssm_parameter" "airflow_logs" { name = format("/%s", join("/", compact(["", var.project, var.venue, var.service_area, var.deployment_name, local.counter, "processing", "airflow", "logs"]))) description = "The name of the S3 bucket for the Airflow logs." @@ -1249,3 +1274,9 @@ resource "aws_lambda_event_source_mapping" "lambda_airflow_dag_trigger" { function_name = aws_lambda_function.airflow_dag_trigger.arn batch_size = 1 } + +resource "aws_lambda_invocation" "unity_proxy_lambda_invocation" { + depends_on = [aws_ssm_parameter.unity_proxy_airflow_ui] + function_name = "${var.project}-${var.venue}-httpdproxymanagement" + input = "{}" +}