module "o11y-regional-server" {
  source = "../../modules/app"
  depends_on = [
    module.o11y-dataplane-cd,
    module.static-principal-access,
    null_resource.k8s_cleanup,
    aws_vpc_endpoint_service_private_dns_verification.this,
  ]

  workflow = "new-region-regional-server.yaml"
  gh_repo  = "tidbcloud/observability"
  gh_ref   = "main"
  parameters = {
    vendor            = "aws"
    region            = var.aws_region
    logicalRegionName = var.logical_region_name
    env               = var.env
    cluster           = local.cluster_name
    args = jsonencode({
      regionalServerRoleARN  = aws_iam_role.regional_server.arn
      diagBucketName         = aws_s3_bucket.shared.bucket
      oidcARN                = module.eks.oidc_provider_arn
      oidcValue              = local.oidc_issuer
      zone                   = local.zone
      endpointServiceID      = aws_vpc_endpoint_service.this.id
      certificateARN         = local.rs_certificate_arn
      wafACLARN              = aws_wafv2_web_acl.rs.arn
      nginxReadIngressClass  = "nginx-read"
      nginxWriteIngressClass = "nginx-write"
      endpointServiceDNSName = local.endpoint_service_dns
      # Still consumed by the observability new-region-regional-server workflow
      # (deploy-new-region.sh reads it without a default), even though the
      # -dp4o11yrs role-creation path is deprecated on the dataplane side.
      dataplaneAssumeRole = "${var.env}-${var.logical_region_name}-dp4o11yrs"
      enableRDS           = var.enable_rds
      rdsSecretARN        = var.enable_rds ? aws_secretsmanager_secret.rds_credentials[0].arn : ""
      imageRegistry       = local.image_registry
      account             = local.o11y_account
      hostedZoneName      = local.hosted_zone_name
    })
  }
  wait_workflow_success = true
  finalizer = {
    workflow = "destroy-region-regional-server.yaml"
    parameters = {
      vendor            = "aws"
      region            = var.aws_region
      logicalRegionName = var.logical_region_name
      env               = var.env
    }
  }
}

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

  kubeconfig_path = module.kubeconfig.path
  workflow        = "regional-server-cd.yaml"
  gh_repo         = "tidbcloud/observability"
  gh_ref          = "main"
  parameters = {
    vendor  = "aws"
    region  = var.logical_region_name
    env     = var.env
    git-ref = "main"
  }
  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
}
