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.iam,
    module.billing_reporter,
  ]

  kubeconfig_path = module.kubeconfig.path
  workflow        = "deploy-new-region-next-gen-metering-server.yaml"
  parameters = {
    cloud             = "azure"
    env               = var.env
    region            = var.cloud_region
    logicalRegionName = var.logical_region_name
    cluster           = module.argocd_cluster.name
    additionalArgs = jsonencode({
      imageRegistry                 = var.image_registry
      imageTag                      = "503d43e4506024d403d9da5eb37e199737784dee"
      bucket                        = azurerm_storage_container.metering.name
      startTime                     = data.external.metering_server_start_time.result.unix
      azureWorkloadIdentityClientID = module.iam.metering_client_id
      azureStorageAccountName       = var.region_metering_storage_account_name
      bucketEndpoint                = var.region_metering_primary_blob_endpoint
      awsReporterRoleArn            = module.billing_reporter.role_arn
    })
  }
  services = [
    {
      name      = "statefulset/nextgen-metering-server"
      namespace = "metering"
      wait_for  = "jsonpath='{.status.availableReplicas}'=REPLICAS"
    }
  ]
}
