infra/staging/outputs.tf

436d37facc96 · 1 KB

output "staging_project_id" {
  description = "Dedicated staging project."
  value       = var.staging_project_id
}

output "network" {
  description = "Private staging VPC self-link."
  value       = google_compute_network.staging.self_link
}

output "database_connection_name" {
  description = "Staging-only Cloud SQL connection name."
  value       = google_sql_database_instance.staging.connection_name
}

output "database_private_ip" {
  description = "Private Cloud SQL address for the distributed lane."
  value       = google_sql_database_instance.staging.private_ip_address
}

output "image_repository" {
  description = "Digest-only image repository for staging candidates."
  value       = "${var.region}-docker.pkg.dev/${var.staging_project_id}/${google_artifact_registry_repository.openagents.repository_id}/openagents"
}

output "builder_image_repository" {
  description = "Digest-only image repository for isolated staging builders."
  value       = "${var.region}-docker.pkg.dev/${var.staging_project_id}/${google_artifact_registry_repository.openagents.repository_id}/openagents-builder"
}

output "fleet_nodes" {
  description = "Exact BEAM node-to-instance map for runtime configuration."
  value = {
    for instance_name, instance_ip in local.nodes :
    "openagents@${instance_ip}" => instance_name
  }
}

output "buckets" {
  description = "Staging-only durable storage buckets."
  value = {
    artifacts  = google_storage_bucket.artifacts.name
    evidence   = google_storage_bucket.evidence.name
    recordings = google_storage_bucket.recordings.name
    wal        = google_storage_bucket.wal.name
  }
}

output "service_accounts" {
  description = "Staging-only runtime identities."
  value = {
    deployer = google_service_account.deployer.email
    fleet    = google_service_account.fleet.email
    web      = google_service_account.web.email
  }
}