data "external" "metering_server_start_time" {
  program = ["bash", "-lc", "printf '{\"unix\":\"%s\"}\\n' \"$(date +%s)\""]
}

module "metering-server" {
  source = "../../modules/app"
  depends_on = [
    module.victoria-metrics-operator,
    module.external-secrets-operator,
    module.billing_reporter,
    alicloud_oss_bucket_acl.bucket-acl,
  ]

  kubeconfig_path = module.kubeconfig.path
  workflow        = "deploy-new-region-next-gen-metering-server.yaml"
  parameters = {
    env               = var.env
    cloud             = "alicloud"
    region            = var.cloud_region
    cluster           = local.cluster_name
    logicalRegionName = var.logical_region_name
    additionalArgs = jsonencode({
      imageRegistry      = local.image_registry
      imageTag           = "503d43e4506024d403d9da5eb37e199737784dee"
      bucket             = alicloud_oss_bucket.metering-bucket.bucket
      startTime          = data.external.metering_server_start_time.result.unix
      awsReporterRoleArn = module.billing_reporter.role_arn
      bucketEndpoint     = "https://oss-${var.cloud_region}-internal.aliyuncs.com"
    })
  }
  services = [
    {
      name      = "statefulset/nextgen-metering-server"
      namespace = "metering"
      wait_for  = "jsonpath='{.status.availableReplicas}'=REPLICAS"
    }
  ]
}
