diff --git a/terraform/implementation/TEMP_orchestration-0.1.6.tgz b/terraform/implementation/TEMP_orchestration-0.1.6.tgz new file mode 100644 index 00000000..10c81d72 Binary files /dev/null and b/terraform/implementation/TEMP_orchestration-0.1.6.tgz differ diff --git a/terraform/implementation/data.tf b/terraform/implementation/data.tf index 0da14c0d..769e292d 100644 --- a/terraform/implementation/data.tf +++ b/terraform/implementation/data.tf @@ -31,7 +31,7 @@ data "kubectl_path_documents" "keda_trigger" { } data "kubectl_path_documents" "keda_scaled_object" { - for_each = local.services + for_each = var.services_to_chart pattern = "./manifests/kedaScaledObject.yaml" vars = { subscriptionId = "${var.subscription_id}" diff --git a/terraform/implementation/ingress-chart-0.1.10.tgz b/terraform/implementation/ingress-chart-0.1.10.tgz new file mode 100644 index 00000000..7640e420 Binary files /dev/null and b/terraform/implementation/ingress-chart-0.1.10.tgz differ diff --git a/terraform/implementation/main.tf b/terraform/implementation/main.tf index f9f78ec8..d4288f1e 100644 --- a/terraform/implementation/main.tf +++ b/terraform/implementation/main.tf @@ -19,16 +19,21 @@ locals { resource_group_name = var.resource_group_name, subscription_id = var.subscription_id, })) +} - services = toset([ - "fhir-converter", - "ingestion", - "ingress", - "message-parser", - "validation", - ]) +variable "services_to_chart" { + type = map(string) + default = { + fhir-converter = "fhir-converter-chart", + ingestion = "ingestion-chart", + ingress = "ingress-chart", + message-parser = "message-parser-chart", + orchestration = "orchestration", + validation = "validation-chart" + } } + # Service Principal resource "azuread_application" "aks" { display_name = "phdi-playground-${terraform.workspace}-aks" @@ -320,19 +325,20 @@ spec: YAML } -# Helm Releases resource "helm_release" "building_blocks" { - for_each = local.services - repository = "https://cdcgov.github.io/phdi-charts/" - name = "phdi-playground-${terraform.workspace}-${each.key}" - chart = "${each.key}-chart" - recreate_pods = true - depends_on = [helm_release.agic] + for_each = var.services_to_chart + repository = "https://cdcgov.github.io/phdi-charts/" + name = "phdi-playground-${terraform.workspace}-${each.key}" + chart = each.value + depends_on = [helm_release.agic] + force_update = true + recreate_pods = true + cleanup_on_fail = true set { name = "image.tag" - value = "latest" + value = "v1.1.1" } set { @@ -349,8 +355,56 @@ resource "helm_release" "building_blocks" { name = "ingressHostname" value = "${var.resource_group_name}-${terraform.workspace}.${var.location}.cloudapp.azure.com" } + + # Service names needed for ingress routes + set { + name = "ingestionServiceName" + value = "phdi-playground-${terraform.workspace}-ingestion-ingestion-service" + } + + set { + name = "fhirConverterServiceName" + value = "phdi-playground-${terraform.workspace}-fhir-converter-fhir-converter-service" + } + + set { + name = "messageParserServiceName" + value = "phdi-playground-${terraform.workspace}-message-parser-message-parser-service" + } + + set { + name = "validationServiceName" + value = "phdi-playground-${terraform.workspace}-validation-validation-service" + } + + set { + name = "orchestrationServiceName" + value = "phdi-playground-${terraform.workspace}-orchestration-orchestration-service" + } + + # Values needed for orchestration service + set { + name = "fhirConverterUrl" + value = "https://${var.resource_group_name}-${terraform.workspace}.${var.location}.cloudapp.azure.com/fhir-converter" + } + + set { + name = "ingestionUrl" + value = "https://${var.resource_group_name}-${terraform.workspace}.${var.location}.cloudapp.azure.com/ingestion" + } + + set { + name = "messageParserUrl" + value = "https://${var.resource_group_name}-${terraform.workspace}.${var.location}.cloudapp.azure.com/message-parser" + } + + set { + name = "validationUrl" + value = "https://${var.resource_group_name}-${terraform.workspace}.${var.location}.cloudapp.azure.com/validation" + } } + # Metrics Dashboard resource "azurerm_portal_dashboard" "pipeline_metrics" { @@ -388,7 +442,7 @@ resource "kubectl_manifest" "keda_trigger" { } resource "kubectl_manifest" "keda_scaled_object" { - for_each = local.services + for_each = var.services_to_chart depends_on = [kubectl_manifest.keda_trigger] yaml_body = data.kubectl_path_documents.keda_scaled_object[each.key].documents[0] }