From 8bb38e080d98b6494f51c4b8415a8d4140a74f65 Mon Sep 17 00:00:00 2001 From: Jon Buckley Date: Fri, 23 Jan 2026 13:36:20 -0500 Subject: [PATCH 1/2] fix(google_cloudsql_mysql): Allow setting a custom name for every replica SVCSE-1339 --- google_cloudsql_mysql/main.tf | 4 ++-- google_cloudsql_mysql/variables.tf | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/google_cloudsql_mysql/main.tf b/google_cloudsql_mysql/main.tf index 5aff97e9..e76939bf 100644 --- a/google_cloudsql_mysql/main.tf +++ b/google_cloudsql_mysql/main.tf @@ -12,7 +12,7 @@ locals { replica_availability_type = coalesce(var.replica_availability_type_override, var.availability_type) default_replica_name = "${local.database_name}-replica" - replica_name = coalesce(var.custom_replica_name, local.default_replica_name) + replica_names = coalescelist(var.custom_replica_name, [for index in range(var.replica_count) : "${local.default_replica_name}-${index}"]) ip_addresses = google_sql_database_instance.primary.ip_address @@ -129,7 +129,7 @@ resource "google_sql_database_instance" "primary" { resource "google_sql_database_instance" "replica" { count = var.replica_count - name = "${local.replica_name}-${count.index}" + name = local.replica_names[count.index] project = var.project_id region = local.replica_region database_version = var.database_version diff --git a/google_cloudsql_mysql/variables.tf b/google_cloudsql_mysql/variables.tf index 311b1c5d..0c1b1199 100644 --- a/google_cloudsql_mysql/variables.tf +++ b/google_cloudsql_mysql/variables.tf @@ -39,9 +39,14 @@ variable "custom_database_name" { } variable "custom_replica_name" { - default = "" + default = [] description = "Custom database replica name." - type = string + type = list(string) + + validation { + condition = length(var.custom_replica_name) == 0 || length(var.custom_replica_name) == var.replica_count + error_message = "Replicas must use default replica name or define a replica name for every replica." + } } variable "data_cache_enabled" { From 5ed555a91c68ff4b8ec1445526cc63120c34f1e5 Mon Sep 17 00:00:00 2001 From: Jon Buckley Date: Mon, 26 Jan 2026 14:06:30 -0500 Subject: [PATCH 2/2] chore(docs): google_cloudsql_mysql/README.md --- google_cloudsql_mysql/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google_cloudsql_mysql/README.md b/google_cloudsql_mysql/README.md index 363d6bbe..88890602 100644 --- a/google_cloudsql_mysql/README.md +++ b/google_cloudsql_mysql/README.md @@ -165,7 +165,7 @@ module "mysql_database" { | [component](#input\_component) | A logical component of an application | `string` | `"db"` | no | | [connector\_enforcement](#input\_connector\_enforcement) | Enables the enforcement of Cloud SQL Auth Proxy or Cloud SQL connectors for all the connections. If enabled, all the direct connections are rejected. | `string` | `null` | no | | [custom\_database\_name](#input\_custom\_database\_name) | Use this field for custom database name. | `string` | `""` | no | -| [custom\_replica\_name](#input\_custom\_replica\_name) | Custom database replica name. | `string` | `""` | no | +| [custom\_replica\_name](#input\_custom\_replica\_name) | Custom database replica name. | `list(string)` | `[]` | no | | [data\_cache\_enabled](#input\_data\_cache\_enabled) | Whether data cache is enabled for the instance. Only available for `ENTERPRISE_PLUS` edition instances. | `bool` | `true` | no | | [database\_flags](#input\_database\_flags) | The database flags for the primary instance. See [more details](https://cloud.google.com/sql/docs/mysql/flags#list-flags-mysql) | `list(object({ name = string, value = string }))` | `[]` | no | | [database\_version](#input\_database\_version) | Version of MySQL to run | `string` | `"MYSQL_8_0"` | no |