locals {
  ds_address = "${local.api_endpoint}/ds"
  rs_address = "${local.api_endpoint}/rs"
}

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

  workflow = "new-region-global.yaml"
  gh_repo  = "tidbcloud/observability"
  parameters = {
    vendor            = "aws"
    region            = var.aws_region
    logicalRegionName = var.logical_region_name
    env               = var.env
    cluster           = local.eks.name
    args = jsonencode({
      rsAddress        = local.rs_address
      dsAddress        = local.ds_address
      tenantID         = var.byoc_tenant_id
      accessPrincipal  = "arn:aws:iam::${local.aws_account_id}:role/tidbcloud-o11y-apigw-role"
      accessExternalID = ""
    })
  }
  wait_workflow_success = true
  finalizer = {
    workflow = "destroy-region-global.yaml"
    parameters = {
      vendor            = "aws"
      region            = var.aws_region
      logicalRegionName = var.logical_region_name
      env               = var.env
    }
  }
}

module "global-server-cd" {
  depends_on = [module.register-region-global]
  source     = "../../../modules/app"

  kubeconfig_path = module.kubeconfig.path
  workflow        = "global-server-cd.yaml"
  gh_repo         = "tidbcloud/observability"
  parameters = {
    env     = var.env
    git-ref = "main"
  }
  wait_workflow_success = true
}

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

  kubeconfig_path = module.kubeconfig.path
  workflow        = "infra-cd-v2.yaml"
  gh_repo         = "tidbcloud/observability"
  parameters = {
    vendor    = "global"
    region    = "us-west-2"
    env       = var.env
    git-ref   = "main"
    bootstrap = "false"
  }
  wait_workflow_success = true
}
