mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 00:02:31 +00:00
feat(relay): let cells dial Cloud SQL over private IP (#18720)
Cells run cloud-sql-proxy against the auth database's public IP, so every connection burns a Cloud NAT port on the relay gateway; that allocation filled on 2026-09-04 and every cell's proxy dial timed out at once. Add --private-ip behind relay_cloud_sql_private_ip so production can move the traffic onto the VPC peering once the foundation root has applied it. Default false, and the rendered startup script is byte-identical to main with that default, so merging rolls nothing. --unix-socket is untouched: it selects the listener, not the upstream address, so DATABASE_URL does not change. The director is Cloud Run and egresses outside this VPC's NAT, so it is not part of the problem; moving it would mean VPC egress plus a TCP DSN and its own secret, which is a separate change.
This commit is contained in:
@@ -242,6 +242,7 @@ resource "google_compute_instance_template" "relay_gce_cell" {
|
||||
artifact_registry_host = "${var.region}-docker.pkg.dev"
|
||||
relay_image = each.value.image
|
||||
cloud_sql_proxy_image = var.relay_gce_cloud_sql_proxy_image
|
||||
cloud_sql_private_ip = var.relay_cloud_sql_private_ip
|
||||
# Keep cell-only plans independent from unrelated database configuration drift.
|
||||
cloud_sql_connection_name = local.relay_database_connection_name
|
||||
})
|
||||
|
||||
@@ -109,6 +109,9 @@ docker run --detach \
|
||||
--user 0:0 \
|
||||
--volume "$${cloudsql_dir}:/cloudsql" \
|
||||
'${cloud_sql_proxy_image}' \
|
||||
%{ if cloud_sql_private_ip ~}
|
||||
--private-ip \
|
||||
%{ endif ~}
|
||||
--unix-socket=/cloudsql \
|
||||
'${cloud_sql_connection_name}'
|
||||
|
||||
|
||||
@@ -468,6 +468,12 @@ variable "relay_gce_fenced_cells" {
|
||||
default = []
|
||||
}
|
||||
|
||||
variable "relay_cloud_sql_private_ip" {
|
||||
type = bool
|
||||
description = "Dial Cloud SQL over its private IP inside this VPC instead of its public IP through Cloud NAT. Requires the foundation root's private services access peering to be applied first; a cell that cannot reach the private IP never becomes ready."
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "relay_gce_cloud_sql_proxy_image" {
|
||||
type = string
|
||||
description = "Digest-pinned Cloud SQL Auth Proxy image used by private relay workers."
|
||||
|
||||
Reference in New Issue
Block a user