module "o11y-regional-server" {
  source = "../../../modules/app"
  depends_on = [
    module.o11y-dataplane-cd,
    null_resource.wait_nginx_write_pls,
    azurerm_storage_container.o11y,
  ]

  workflow = "new-region-regional-server.yaml"
  gh_repo  = "tidbcloud/observability"
  gh_ref   = local.o11y_workflow_ref
  parameters = merge(local.metadata_parameters, {
    args = jsonencode({
      regionalServerRoleARN  = local.identity_client_ids.regional_server
      diagBucketName         = local.diag_container
      oidcValue              = module.aks.oidc_issuer
      zone                   = local.azure_zone
      endpointServiceID      = local.private_link_service_name
      wafACLARN              = azurerm_web_application_firewall_policy.rs.id
      nginxReadIngressClass  = "nginx-read"
      nginxWriteIngressClass = "nginx-write"
      imageRegistry          = var.image_registry
      hostedZoneName         = local.hosted_zone_name
      storageAccountName     = azurerm_storage_account.o11y.name
      subscriptionID         = var.customer_subscription_id
      resourceGroup          = local.resource_group
      storageResourceGroup   = var.storage_resource_group_name
      tenantID               = var.byoc_tenant_id
      byoc                   = true
    })
  })
  wait_workflow_success = true
  finalizer = {
    workflow = "destroy-region-regional-server.yaml"
    parameters = {
      vendor            = "azure"
      region            = var.cloud_region
      logicalRegionName = var.logical_region_name
      env               = var.env
    }
  }
}

module "o11y-regional-server-cd" {
  depends_on = [module.o11y-regional-server]
  source     = "../../../modules/app"

  kubeconfig_path = module.kubeconfig.path
  workflow        = "regional-server-cd.yaml"
  gh_repo         = "tidbcloud/observability"
  gh_ref          = local.o11y_workflow_ref
  parameters = merge(local.cd_parameters, {
    image-registry        = var.image_registry
    regional-server-image = "${var.image_registry}/observability-regional-server:${var.regional_server_img_tag}"
    data-server-image     = "${var.image_registry}/observability-regional-data-server:${var.data_server_img_tag}"
  })
  services = [
    {
      name      = "deploy/regionalserver"
      namespace = "observability"
      wait_for  = "jsonpath='{.status.availableReplicas}'=REPLICAS"
    },
    {
      name      = "deploy/data-server"
      namespace = "observability"
      wait_for  = "jsonpath='{.status.availableReplicas}'=REPLICAS"
    }
  ]
  wait_workflow_success = true
  check_before_destroy  = false
}
