From 1925f0346c314ab05fd5f1e36c156c5b449a7d5b Mon Sep 17 00:00:00 2001 From: Sven Schliesing Date: Thu, 23 Jan 2025 19:34:32 +0100 Subject: [PATCH 1/6] feat: Add variables "enable_default_db", "enable_default_user" to module "safer_mysql" (#698) --- modules/safer_mysql/README.md | 2 ++ modules/safer_mysql/main.tf | 8 +++++--- modules/safer_mysql/variables.tf | 12 ++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/safer_mysql/README.md b/modules/safer_mysql/README.md index ae4bb296..bcd44e2b 100644 --- a/modules/safer_mysql/README.md +++ b/modules/safer_mysql/README.md @@ -261,6 +261,8 @@ module "safer-mysql-db" { | disk\_size | The disk size for the master instance | `number` | `10` | no | | disk\_type | The disk type for the master instance. | `string` | `"PD_SSD"` | no | | edition | The edition of the instance, can be ENTERPRISE or ENTERPRISE\_PLUS. | `string` | `null` | no | +| enable\_default\_db | Enable or disable the creation of the default database | `bool` | `true` | no | +| enable\_default\_user | Enable or disable the creation of the default user | `bool` | `true` | no | | encryption\_key\_name | The full path to the encryption key used for the CMEK disk encryption | `string` | `null` | no | | follow\_gae\_application | A Google App Engine application whose zone to remain in. Must be in the same region as this instance. | `string` | `null` | no | | iam\_users | A list of IAM users to be created in your CloudSQL instance. iam.users.type can be CLOUD\_IAM\_USER, CLOUD\_IAM\_SERVICE\_ACCOUNT, CLOUD\_IAM\_GROUP and is required for type CLOUD\_IAM\_GROUP (IAM groups) |
list(object({
id = string,
email = string,
type = optional(string)
}))
| `[]` | no | diff --git a/modules/safer_mysql/main.tf b/modules/safer_mysql/main.tf index 2aaada4a..2f9b7a5e 100644 --- a/modules/safer_mysql/main.tf +++ b/modules/safer_mysql/main.tf @@ -60,11 +60,13 @@ module "safer_mysql" { allocated_ip_range = var.allocated_ip_range } - db_name = var.db_name - db_charset = var.db_charset - db_collation = var.db_collation + enable_default_db = var.enable_default_db + db_name = var.db_name + db_charset = var.db_charset + db_collation = var.db_collation additional_databases = var.additional_databases + enable_default_user = var.enable_default_user user_name = var.user_name // All MySQL users can connect only via the Cloud SQL Proxy. diff --git a/modules/safer_mysql/variables.tf b/modules/safer_mysql/variables.tf index 1d3afc6b..9df45272 100644 --- a/modules/safer_mysql/variables.tf +++ b/modules/safer_mysql/variables.tf @@ -258,6 +258,12 @@ variable "read_replicas" { default = [] } +variable "enable_default_db" { + description = "Enable or disable the creation of the default database" + type = bool + default = true +} + variable "db_name" { description = "The name of the default database to create" type = string @@ -286,6 +292,12 @@ variable "additional_databases" { default = [] } +variable "enable_default_user" { + description = "Enable or disable the creation of the default user" + type = bool + default = true +} + variable "user_name" { description = "The name of the default user" type = string From 49b478ab02388effb06b27a8a45dd26451cb867a Mon Sep 17 00:00:00 2001 From: Imran Nayer Date: Fri, 24 Jan 2025 10:19:00 -0600 Subject: [PATCH 2/6] feat: added support for maintenance version (#679) --- examples/postgresql-with-cross-region-failover/main.tf | 6 +++--- modules/mssql/README.md | 1 + modules/mssql/main.tf | 1 + modules/mssql/variables.tf | 6 ++++++ modules/mysql/README.md | 1 + modules/mysql/main.tf | 1 + modules/mysql/variables.tf | 6 ++++++ modules/postgresql/README.md | 3 ++- modules/postgresql/main.tf | 1 + modules/postgresql/variables.tf | 10 ++++++++-- modules/safer_mysql/README.md | 1 + modules/safer_mysql/main.tf | 1 + modules/safer_mysql/variables.tf | 6 ++++++ .../postgresql_cross_region_failover_test.go | 2 +- 14 files changed, 39 insertions(+), 7 deletions(-) diff --git a/examples/postgresql-with-cross-region-failover/main.tf b/examples/postgresql-with-cross-region-failover/main.tf index f370c34f..1a982563 100644 --- a/examples/postgresql-with-cross-region-failover/main.tf +++ b/examples/postgresql-with-cross-region-failover/main.tf @@ -52,7 +52,7 @@ module "pg1" { name = var.pg_name_1 random_instance_name = true project_id = var.project_id - database_version = "POSTGRES_14" + database_version = "POSTGRES_17" region = local.region_1 edition = local.edition @@ -158,13 +158,13 @@ module "pg2" { version = "~> 25.0" - # Comment this parameter to promot instance 2 as primary instance. This will break replication between instance 1 and 2 + # Comment this parameter to promote instance 2 as primary instance. master_instance_name = module.pg1.instance_name name = var.pg_name_2 random_instance_name = true project_id = var.project_id - database_version = "POSTGRES_14" + database_version = "POSTGRES_17" region = local.region_2 edition = local.edition diff --git a/modules/mssql/README.md b/modules/mssql/README.md index 87dd43f0..55746a21 100644 --- a/modules/mssql/README.md +++ b/modules/mssql/README.md @@ -61,6 +61,7 @@ module "mssql" { | follow\_gae\_application | A Google App Engine application whose zone to remain in. Must be in the same region as this instance. | `string` | `null` | no | | instance\_type | The type of the instance. The supported values are SQL\_INSTANCE\_TYPE\_UNSPECIFIED, CLOUD\_SQL\_INSTANCE, ON\_PREMISES\_INSTANCE and READ\_REPLICA\_INSTANCE. Set to READ\_REPLICA\_INSTANCE when primary\_instance\_name is provided | `string` | `"CLOUD_SQL_INSTANCE"` | no | | ip\_configuration | The ip configuration for the Cloud SQL instances. |
object({
authorized_networks = optional(list(map(string)), [])
ipv4_enabled = optional(bool)
private_network = optional(string)
allocated_ip_range = optional(string)
ssl_mode = optional(string)
})
|
{
"allocated_ip_range": null,
"authorized_networks": [],
"ipv4_enabled": true,
"private_network": null,
"ssl_mode": null
}
| no | +| maintenance\_version | The current software version on the instance. This attribute can not be set during creation. Refer to available\_maintenance\_versions attribute to see what maintenance\_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance\_version value that is older than the current one on the instance will be ignored | `string` | `null` | no | | maintenance\_window\_day | The day of week (1-7) for the Cloud SQL maintenance. | `number` | `1` | no | | maintenance\_window\_hour | The hour of day (0-23) maintenance window for the Cloud SQL maintenance. | `number` | `23` | no | | maintenance\_window\_update\_track | The update track of maintenance window for the Cloud SQL maintenance.Can be either `canary` or `stable`. | `string` | `"canary"` | no | diff --git a/modules/mssql/main.tf b/modules/mssql/main.tf index 569ba30f..7464ce24 100644 --- a/modules/mssql/main.tf +++ b/modules/mssql/main.tf @@ -47,6 +47,7 @@ resource "google_sql_database_instance" "default" { project = var.project_id name = var.random_instance_name ? "${var.name}-${random_id.suffix[0].hex}" : var.name database_version = var.database_version + maintenance_version = var.maintenance_version region = var.region encryption_key_name = var.encryption_key_name root_password = coalesce(var.root_password, random_password.root-password.result) diff --git a/modules/mssql/variables.tf b/modules/mssql/variables.tf index 205e845d..4ff68872 100644 --- a/modules/mssql/variables.tf +++ b/modules/mssql/variables.tf @@ -42,6 +42,12 @@ variable "random_instance_name" { default = false } +variable "maintenance_version" { + description = "The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions attribute to see what maintenance_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version value that is older than the current one on the instance will be ignored" + type = string + default = null +} + // required variable "database_version" { description = "The database version to use: SQLSERVER_2017_STANDARD, SQLSERVER_2017_ENTERPRISE, SQLSERVER_2017_EXPRESS, or SQLSERVER_2017_WEB" diff --git a/modules/mysql/README.md b/modules/mysql/README.md index 83beca0c..3c98aedb 100644 --- a/modules/mysql/README.md +++ b/modules/mysql/README.md @@ -78,6 +78,7 @@ module "mysql-db" { | insights\_config | The insights\_config settings for the database. |
object({
query_plans_per_minute = number
query_string_length = number
record_application_tags = bool
record_client_address = bool
})
| `null` | no | | instance\_type | Users can upgrade a read replica instance to a stand-alone Cloud SQL instance with the help of instance\_type. To promote, users have to set the instance\_type property as CLOUD\_SQL\_INSTANCE and remove/unset master\_instance\_name and replica\_configuration from instance configuration. This operation might cause your instance to restart. | `string` | `null` | no | | ip\_configuration | The ip\_configuration settings subblock |
object({
authorized_networks = optional(list(map(string)), [])
ipv4_enabled = optional(bool, true)
private_network = optional(string)
ssl_mode = optional(string)
allocated_ip_range = optional(string)
enable_private_path_for_google_cloud_services = optional(bool, false)
psc_enabled = optional(bool, false)
psc_allowed_consumer_projects = optional(list(string), [])
})
| `{}` | no | +| maintenance\_version | The current software version on the instance. This attribute can not be set during creation. Refer to available\_maintenance\_versions attribute to see what maintenance\_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance\_version value that is older than the current one on the instance will be ignored | `string` | `null` | no | | maintenance\_window\_day | The day of week (1-7) for the master instance maintenance. | `number` | `1` | no | | maintenance\_window\_hour | The hour of day (0-23) maintenance window for the master instance maintenance. | `number` | `23` | no | | maintenance\_window\_update\_track | The update track of maintenance window for the master instance maintenance. Can be either `canary` or `stable`. | `string` | `"canary"` | no | diff --git a/modules/mysql/main.tf b/modules/mysql/main.tf index cec63c45..a408118b 100644 --- a/modules/mysql/main.tf +++ b/modules/mysql/main.tf @@ -56,6 +56,7 @@ resource "google_sql_database_instance" "default" { project = var.project_id name = local.master_instance_name database_version = var.database_version + maintenance_version = var.maintenance_version region = var.region master_instance_name = var.master_instance_name instance_type = var.instance_type diff --git a/modules/mysql/variables.tf b/modules/mysql/variables.tf index b78eb888..42a6eb99 100644 --- a/modules/mysql/variables.tf +++ b/modules/mysql/variables.tf @@ -43,6 +43,12 @@ variable "database_version" { type = string } +variable "maintenance_version" { + description = "The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions attribute to see what maintenance_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version value that is older than the current one on the instance will be ignored" + type = string + default = null +} + variable "availability_type" { description = "The availability type for the master instance. Can be either `REGIONAL` or `null`." type = string diff --git a/modules/postgresql/README.md b/modules/postgresql/README.md index 5e86a6fb..3709b01e 100644 --- a/modules/postgresql/README.md +++ b/modules/postgresql/README.md @@ -127,7 +127,7 @@ module "pg" { | database\_deletion\_policy | The deletion policy for the database. Setting ABANDON allows the resource to be abandoned rather than deleted. This is useful for Postgres, where databases cannot be deleted from the API if there are users other than cloudsqlsuperuser with access. Possible values are: "ABANDON". | `string` | `null` | no | | database\_flags | The database flags for the Cloud SQL instance. See [more details](https://cloud.google.com/sql/docs/postgres/flags) |
list(object({
name = string
value = string
}))
| `[]` | no | | database\_integration\_roles | The roles required by default database instance service account for integration with GCP services | `list(string)` | `[]` | no | -| database\_version | The database version to use | `string` | n/a | yes | +| database\_version | The database version to use. Can be 9\_6, 14, 15, 16, 17. | `string` | n/a | yes | | db\_charset | The charset for the default database | `string` | `""` | no | | db\_collation | The collation for the default database. Example: 'en\_US.UTF8' | `string` | `""` | no | | db\_name | The name of the default database to create. This should be unique per Cloud SQL instance. | `string` | `"default"` | no | @@ -150,6 +150,7 @@ module "pg" { | insights\_config | The insights\_config settings for the database. |
object({
query_plans_per_minute = optional(number, 5)
query_string_length = optional(number, 1024)
record_application_tags = optional(bool, false)
record_client_address = optional(bool, false)
})
| `null` | no | | instance\_type | The type of the instance. The supported values are SQL\_INSTANCE\_TYPE\_UNSPECIFIED, CLOUD\_SQL\_INSTANCE, ON\_PREMISES\_INSTANCE and READ\_REPLICA\_INSTANCE. Set to READ\_REPLICA\_INSTANCE if master\_instance\_name value is provided | `string` | `"CLOUD_SQL_INSTANCE"` | no | | ip\_configuration | The ip configuration for the Cloud SQL instances. |
object({
authorized_networks = optional(list(map(string)), [])
ipv4_enabled = optional(bool, true)
private_network = optional(string)
ssl_mode = optional(string)
allocated_ip_range = optional(string)
enable_private_path_for_google_cloud_services = optional(bool, false)
psc_enabled = optional(bool, false)
psc_allowed_consumer_projects = optional(list(string), [])
})
| `{}` | no | +| maintenance\_version | The current software version on the instance. This attribute can not be set during creation. Refer to available\_maintenance\_versions attribute to see what maintenance\_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance\_version value that is older than the current one on the instance will be ignored | `string` | `null` | no | | maintenance\_window\_day | The day of week (1-7) for the Cloud SQL instance maintenance. | `number` | `1` | no | | maintenance\_window\_hour | The hour of day (0-23) maintenance window for the Cloud SQL instance maintenance. | `number` | `23` | no | | maintenance\_window\_update\_track | The update track of maintenance window for the Cloud SQL instance maintenance.Can be either `canary` or `stable`. | `string` | `"canary"` | no | diff --git a/modules/postgresql/main.tf b/modules/postgresql/main.tf index ca37538d..4adf4e4d 100644 --- a/modules/postgresql/main.tf +++ b/modules/postgresql/main.tf @@ -58,6 +58,7 @@ resource "google_sql_database_instance" "default" { project = var.project_id name = local.instance_name database_version = can(regex("\\d", substr(var.database_version, 0, 1))) ? format("POSTGRES_%s", var.database_version) : replace(var.database_version, substr(var.database_version, 0, 8), "POSTGRES") + maintenance_version = var.maintenance_version region = var.region encryption_key_name = var.encryption_key_name deletion_protection = var.deletion_protection diff --git a/modules/postgresql/variables.tf b/modules/postgresql/variables.tf index eb0042cd..05e44f1d 100644 --- a/modules/postgresql/variables.tf +++ b/modules/postgresql/variables.tf @@ -38,15 +38,21 @@ variable "edition" { // required variable "database_version" { - description = "The database version to use" + description = "The database version to use. Can be 9_6, 14, 15, 16, 17." type = string validation { condition = (length(var.database_version) >= 9 && ((upper(substr(var.database_version, 0, 9)) == "POSTGRES_") && can(regex("^\\d+(?:_?\\d)*$", substr(var.database_version, 9, -1))))) || can(regex("^\\d+(?:_?\\d)*$", var.database_version)) - error_message = "The specified database version is not a valid representaion of database version. Valid database versions should be like the following patterns:- \"9_6\", \"postgres_9_6\", \"POSTGRES_14\" or \"POSTGRES_15\"" + error_message = "The specified database version is not a valid representation of database version. Valid database versions should be like the following patterns:- \"9_6\", \"postgres_9_6\", \"14\", \"POSTGRES_14\", \"15\", \"POSTGRES_15\", \"16\", \"POSTGRES_16\" or \"17\", \"POSTGRES_17\"" } } +variable "maintenance_version" { + description = "The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions attribute to see what maintenance_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version value that is older than the current one on the instance will be ignored" + type = string + default = null +} + variable "availability_type" { description = "The availability type for the Cloud SQL instance.This is only used to set up high availability for the PostgreSQL instance. Can be either `ZONAL` or `REGIONAL`." type = string diff --git a/modules/safer_mysql/README.md b/modules/safer_mysql/README.md index bcd44e2b..8922136d 100644 --- a/modules/safer_mysql/README.md +++ b/modules/safer_mysql/README.md @@ -267,6 +267,7 @@ module "safer-mysql-db" { | follow\_gae\_application | A Google App Engine application whose zone to remain in. Must be in the same region as this instance. | `string` | `null` | no | | iam\_users | A list of IAM users to be created in your CloudSQL instance. iam.users.type can be CLOUD\_IAM\_USER, CLOUD\_IAM\_SERVICE\_ACCOUNT, CLOUD\_IAM\_GROUP and is required for type CLOUD\_IAM\_GROUP (IAM groups) |
list(object({
id = string,
email = string,
type = optional(string)
}))
| `[]` | no | | insights\_config | The insights\_config settings for the database. |
object({
query_plans_per_minute = number
query_string_length = number
record_application_tags = bool
record_client_address = bool
})
| `null` | no | +| maintenance\_version | The current software version on the instance. This attribute can not be set during creation. Refer to available\_maintenance\_versions attribute to see what maintenance\_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance\_version value that is older than the current one on the instance will be ignored | `string` | `null` | no | | maintenance\_window\_day | The day of week (1-7) for the master instance maintenance. | `number` | `1` | no | | maintenance\_window\_hour | The hour of day (0-23) maintenance window for the master instance maintenance. | `number` | `23` | no | | maintenance\_window\_update\_track | The update track of maintenance window for the master instance maintenance. Can be either `canary` or `stable`. | `string` | `"stable"` | no | diff --git a/modules/safer_mysql/main.tf b/modules/safer_mysql/main.tf index 2f9b7a5e..974556ff 100644 --- a/modules/safer_mysql/main.tf +++ b/modules/safer_mysql/main.tf @@ -20,6 +20,7 @@ module "safer_mysql" { name = var.name random_instance_name = var.random_instance_name database_version = var.database_version + maintenance_version = var.maintenance_version region = var.region zone = var.zone secondary_zone = var.secondary_zone diff --git a/modules/safer_mysql/variables.tf b/modules/safer_mysql/variables.tf index 9df45272..c31e7889 100644 --- a/modules/safer_mysql/variables.tf +++ b/modules/safer_mysql/variables.tf @@ -36,6 +36,12 @@ variable "database_version" { type = string } +variable "maintenance_version" { + description = "The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions attribute to see what maintenance_version are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version value that is older than the current one on the instance will be ignored" + type = string + default = null +} + // required variable "region" { description = "The region of the Cloud SQL resources" diff --git a/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go b/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go index fa2a5dd8..7e2bb046 100644 --- a/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go +++ b/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go @@ -59,7 +59,7 @@ func TestPostgreSqlCrossRegionFailover(t *testing.T) { assert.Equal(1, len(authNetworks), "Expected one auth network") /// assert standard database settings - assert.Equal("POSTGRES_14", op.Get("databaseVersion").String(), "Expected POSTGRES_14 databaseVersion") + assert.Equal("POSTGRES_17", op.Get("databaseVersion").String(), "Expected POSTGRES_17 databaseVersion") assert.Equal("SECOND_GEN", op.Get("backendType").String(), "Expected SECOND_GEN backendType") assert.Equal("RUNNABLE", op.Get("state").String(), "Expected RUNNABLE state") assert.Equal("us-central1", op.Get("region").String(), "Expected us-central1 region") From fc59e296dd90f2a33a5fccb1d54408b57839fb11 Mon Sep 17 00:00:00 2001 From: abhishek kumar tiwari Date: Wed, 29 Jan 2025 03:03:54 +0000 Subject: [PATCH 3/6] chore: add connection metadata for GCE instance_template (#700) --- modules/mysql/metadata.yaml | 5 +++++ modules/postgresql/metadata.yaml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/modules/mysql/metadata.yaml b/modules/mysql/metadata.yaml index 4dba7f89..ed6422d9 100644 --- a/modules/mysql/metadata.yaml +++ b/modules/mysql/metadata.yaml @@ -163,6 +163,11 @@ spec: version: ">= 0.14" spec: outputExpr: "{\"id\": service_account_id.id, \"email\": service_account_id.email, \"type\": \"CLOUD_IAM_SERVICE_ACCOUNT\"}" + - source: + source: github.com/terraform-google-modules/terraform-google-vm//modules/instance_template + version: ">= 13.2.0" + spec: + outputExpr: "{\"id\": service_account_info.id, \"email\": service_account_info.email, \"type\": \"CLOUD_IAM_SERVICE_ACCOUNT\"}" - name: random_instance_name description: Sets random suffix at the end of the Cloud SQL resource name varType: bool diff --git a/modules/postgresql/metadata.yaml b/modules/postgresql/metadata.yaml index 5964d2d6..06b99f35 100644 --- a/modules/postgresql/metadata.yaml +++ b/modules/postgresql/metadata.yaml @@ -353,6 +353,11 @@ spec: version: ">= 0.14" spec: outputExpr: "{\"id\": service_account_id.id, \"email\": service_account_id.email, \"type\": \"CLOUD_IAM_SERVICE_ACCOUNT\"}" + - source: + source: github.com/terraform-google-modules/terraform-google-vm//modules/instance_template + version: ">= 13.2.0" + spec: + outputExpr: "{\"id\": service_account_info.id, \"email\": service_account_info.email, \"type\": \"CLOUD_IAM_SERVICE_ACCOUNT\"}" - name: create_timeout description: The optional timout that is applied to limit long database creates. varType: string From bbb402c67387aff30c8ee49e2886e64efa9e4363 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Kl=C3=BCnter?= <154592818+ckluente-1k5@users.noreply.github.com> Date: Wed, 29 Jan 2025 18:34:43 +0100 Subject: [PATCH 4/6] chore: remove require_ssl from examples (#673) Co-authored-by: Imran Nayer --- examples/postgresql-with-cross-region-failover/main.tf | 2 +- modules/postgresql/README.md | 2 +- .../postgresql_cross_region_failover_test.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/postgresql-with-cross-region-failover/main.tf b/examples/postgresql-with-cross-region-failover/main.tf index 1a982563..95cca35b 100644 --- a/examples/postgresql-with-cross-region-failover/main.tf +++ b/examples/postgresql-with-cross-region-failover/main.tf @@ -94,7 +94,7 @@ module "pg1" { ip_configuration = { ipv4_enabled = false - require_ssl = true + ssl_mode = "ENCRYPTED_ONLY" private_network = google_compute_network.default.self_link allocated_ip_range = null authorized_networks = [ diff --git a/modules/postgresql/README.md b/modules/postgresql/README.md index 3709b01e..d316a549 100644 --- a/modules/postgresql/README.md +++ b/modules/postgresql/README.md @@ -39,7 +39,7 @@ module "pg" { ip_configuration = { ipv4_enabled = true - require_ssl = true + ssl_mode = "ENCRYPTED_ONLY" // can also be ALLOW_UNENCRYPTED_AND_ENCRYPTED private_network = null allocated_ip_range = null authorized_networks = [ diff --git a/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go b/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go index 7e2bb046..2ace15bc 100644 --- a/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go +++ b/test/integration/postgresql-with-cross-region-failover/postgresql_cross_region_failover_test.go @@ -67,7 +67,7 @@ func TestPostgreSqlCrossRegionFailover(t *testing.T) { // assert general database settings assert.Equal("REGIONAL", op.Get("settings.availabilityType").String(), "Expected REGIONAL availabilityType") assert.Equal("PD_SSD", op.Get("settings.dataDiskType").String(), "Expected PD_SSD dataDiskType") - assert.Equal("ALLOW_UNENCRYPTED_AND_ENCRYPTED", op.Get("settings.ipConfiguration.sslMode").String(), "Expected ssl_mode") + assert.Equal("ENCRYPTED_ONLY", op.Get("settings.ipConfiguration.sslMode").String(), "Expected ssl_mode") // assert user labels assert.JSONEq(`{"foo": "bar", "instance": "instance-1"}`, op.Get("settings.userLabels").Raw, `Expected {"foo": "bar", "instance": "instance-1"} userLabels`) @@ -85,7 +85,7 @@ func TestPostgreSqlCrossRegionFailover(t *testing.T) { assert.Equal(int64(365), op.Get("settings.backupConfiguration.backupRetentionSettings.retainedBackups").Int(), "Expected 365 backupConfigurationRetainedBackups") assert.Equal("COUNT", op.Get("settings.backupConfiguration.backupRetentionSettings.retentionUnit").String(), "Expected COUNT backupConfigurationRetentionUnit") assert.True(op.Get("settings.backupConfiguration.pointInTimeRecoveryEnabled").Bool(), "Expected TRUE") - assert.Equal("ALLOW_UNENCRYPTED_AND_ENCRYPTED", op.Get("settings.ipConfiguration.sslMode").String(), "Expected ssl_mode") + assert.Equal("ENCRYPTED_ONLY", op.Get("settings.ipConfiguration.sslMode").String(), "Expected ssl_mode") assert.Equal("14", op.Get("settings.backupConfiguration.transactionLogRetentionDays").String(), "Expected transactionLogRetentionDays 14") // assert Encryption configuration From ea26f62f00fbbe197689ac44f8e419a82cfdfbcb Mon Sep 17 00:00:00 2001 From: thomasboussekey Date: Wed, 29 Jan 2025 18:49:39 +0100 Subject: [PATCH 5/6] chore: fix update MD links (#695) Co-authored-by: Bharath KKB Co-authored-by: Imran Nayer --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 04413adc..c9673fcd 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,10 @@ The current version is 20.X. The following guides are available to assist with u - [10.X -> 11.0](./docs/upgrading_to_sql_db_11.0.0.md) - [11.X -> 12.0](./docs/upgrading_to_sql_db_12.0.0.md) - [19.X -> 20.0](./docs/upgrading_to_sql_db_20.0.0.md) -- [20.X -> 21.0](./docs/upgrading_to_sql_db_21.0.0.md) +- [20.X -> 21.0](./docs/upgrading_to_sql_db_21.0.md) +- [21.X -> 22.0](./docs/upgrading_to_sql_db_22.0.md) +- [22.X -> 23.0](./docs/upgrading_to_sql_db_23.0.md) +- [23.X -> 24.0](./docs/upgrading_to_sql_db_24.0.md) ## Root module From 85896c8e7c6002f2ab748f00f9d08babbf0a08a5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:05:07 -0600 Subject: [PATCH 6/6] chore(main): release 25.1.0 (#699) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Imran Nayer --- CHANGELOG.md | 8 ++++++++ README.md | 2 +- examples/mssql-failover-replica/README.md | 2 +- examples/postgresql-with-cross-region-failover/README.md | 2 +- modules/mssql/README.md | 2 +- modules/mssql/metadata.yaml | 2 +- modules/mssql/versions.tf | 2 +- modules/mysql/README.md | 2 +- modules/mysql/metadata.yaml | 2 +- modules/mysql/versions.tf | 4 ++-- modules/postgresql/README.md | 2 +- modules/postgresql/metadata.yaml | 2 +- modules/postgresql/versions.tf | 4 ++-- modules/private_service_access/README.md | 2 +- modules/private_service_access/metadata.yaml | 2 +- modules/private_service_access/versions.tf | 4 ++-- modules/safer_mysql/README.md | 2 +- modules/safer_mysql/metadata.yaml | 2 +- modules/safer_mysql/versions.tf | 2 +- 19 files changed, 29 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57e3e25d..cd2f8407 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [25.1.0](https://github.com/terraform-google-modules/terraform-google-sql-db/compare/v25.0.2...v25.1.0) (2025-01-29) + + +### Features + +* Add variables "enable_default_db", "enable_default_user" to module "safer_mysql" ([#698](https://github.com/terraform-google-modules/terraform-google-sql-db/issues/698)) ([1925f03](https://github.com/terraform-google-modules/terraform-google-sql-db/commit/1925f0346c314ab05fd5f1e36c156c5b449a7d5b)) +* added support for maintenance version ([#679](https://github.com/terraform-google-modules/terraform-google-sql-db/issues/679)) ([49b478a](https://github.com/terraform-google-modules/terraform-google-sql-db/commit/49b478ab02388effb06b27a8a45dd26451cb867a)) + ## [25.0.2](https://github.com/terraform-google-modules/terraform-google-sql-db/compare/v25.0.1...v25.0.2) (2025-01-16) diff --git a/README.md b/README.md index c9673fcd..a3973683 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ For MySQL : ``` module "sql-db" { source = "GoogleCloudPlatform/sql-db/google//modules/mysql" - version = "~> 25.0" + version = "~> 25.1" } ``` diff --git a/examples/mssql-failover-replica/README.md b/examples/mssql-failover-replica/README.md index 41ffc50d..596b2a4c 100644 --- a/examples/mssql-failover-replica/README.md +++ b/examples/mssql-failover-replica/README.md @@ -23,7 +23,7 @@ Promote instance 2 as primary and change instance 1 as failover replica ```diff module "mssql2" { source = "terraform-google-modules/sql-db/google//modules/mssql" - version = "~> 25.0" + version = "~> 25.1" - master_instance_name = module.mssql1.instance_name diff --git a/examples/postgresql-with-cross-region-failover/README.md b/examples/postgresql-with-cross-region-failover/README.md index b4a8ea2b..7042d302 100644 --- a/examples/postgresql-with-cross-region-failover/README.md +++ b/examples/postgresql-with-cross-region-failover/README.md @@ -26,7 +26,7 @@ Promote instance 2 as primary and change instance 1 as failover replica ```diff module "pg2" { source = "terraform-google-modules/sql-db/google//modules/postgresql" - version = "~> 25.0" + version = "~> 25.1" - master_instance_name = module.pg1.instance_name diff --git a/modules/mssql/README.md b/modules/mssql/README.md index 55746a21..8e4e12d1 100644 --- a/modules/mssql/README.md +++ b/modules/mssql/README.md @@ -12,7 +12,7 @@ Basic usage of this module is as follows: ```hcl module "mssql" { source = "terraform-google-modules/sql-db/google//modules/mssql" - version = "~> 25.0" + version = "~> 25.1" name = var.name random_instance_name = true diff --git a/modules/mssql/metadata.yaml b/modules/mssql/metadata.yaml index 92a0fc42..b98157c0 100644 --- a/modules/mssql/metadata.yaml +++ b/modules/mssql/metadata.yaml @@ -25,7 +25,7 @@ spec: repo: https://github.com/terraform-google-modules/terraform-google-sql-db.git sourceType: git dir: /modules/mssql - version: 25.0.2 + version: 25.1.0 actuationTool: flavor: Terraform version: ">= 1.3" diff --git a/modules/mssql/versions.tf b/modules/mssql/versions.tf index 7ed21561..da5c3006 100644 --- a/modules/mssql/versions.tf +++ b/modules/mssql/versions.tf @@ -36,7 +36,7 @@ terraform { } provider_meta "google-beta" { - module_name = "blueprints/terraform/terraform-google-sql-db:mssql/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:mssql/v25.1.0" } } diff --git a/modules/mysql/README.md b/modules/mysql/README.md index 3c98aedb..87c6aeaa 100644 --- a/modules/mysql/README.md +++ b/modules/mysql/README.md @@ -10,7 +10,7 @@ Functional examples are included in the [examples](../../examples/) directory. B ```hcl module "mysql-db" { source = "terraform-google-modules/sql-db/google//modules/mysql" - version = "~> 25.0" + version = "~> 25.1" name = var.db_name random_instance_name = true diff --git a/modules/mysql/metadata.yaml b/modules/mysql/metadata.yaml index ed6422d9..53e147b6 100644 --- a/modules/mysql/metadata.yaml +++ b/modules/mysql/metadata.yaml @@ -25,7 +25,7 @@ spec: repo: https://github.com/terraform-google-modules/terraform-google-sql-db.git sourceType: git dir: /modules/mysql - version: 25.0.2 + version: 25.1.0 actuationTool: flavor: Terraform version: ">= 1.3" diff --git a/modules/mysql/versions.tf b/modules/mysql/versions.tf index 08198305..e32c74f4 100644 --- a/modules/mysql/versions.tf +++ b/modules/mysql/versions.tf @@ -36,10 +36,10 @@ terraform { } provider_meta "google" { - module_name = "blueprints/terraform/terraform-google-sql-db:mysql/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:mysql/v25.1.0" } provider_meta "google-beta" { - module_name = "blueprints/terraform/terraform-google-sql-db:mysql/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:mysql/v25.1.0" } } diff --git a/modules/postgresql/README.md b/modules/postgresql/README.md index d316a549..b2c1f38a 100644 --- a/modules/postgresql/README.md +++ b/modules/postgresql/README.md @@ -13,7 +13,7 @@ Basic usage of this module is as follows: ```hcl module "pg" { source = "terraform-google-modules/sql-db/google//modules/postgresql" - version = "~> 25.0" + version = "~> 25.1" name = var.pg_ha_name random_instance_name = true diff --git a/modules/postgresql/metadata.yaml b/modules/postgresql/metadata.yaml index 06b99f35..370722f3 100644 --- a/modules/postgresql/metadata.yaml +++ b/modules/postgresql/metadata.yaml @@ -25,7 +25,7 @@ spec: repo: https://github.com/terraform-google-modules/terraform-google-sql-db.git sourceType: git dir: /modules/postgresql - version: 25.0.2 + version: 25.1.0 actuationTool: flavor: Terraform version: ">= 1.3" diff --git a/modules/postgresql/versions.tf b/modules/postgresql/versions.tf index 7a78fa66..03333c1c 100644 --- a/modules/postgresql/versions.tf +++ b/modules/postgresql/versions.tf @@ -36,10 +36,10 @@ terraform { } provider_meta "google" { - module_name = "blueprints/terraform/terraform-google-sql-db:postgresql/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:postgresql/v25.1.0" } provider_meta "google-beta" { - module_name = "blueprints/terraform/terraform-google-sql-db:postgresql/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:postgresql/v25.1.0" } } diff --git a/modules/private_service_access/README.md b/modules/private_service_access/README.md index 64e484cc..9cc6afe3 100644 --- a/modules/private_service_access/README.md +++ b/modules/private_service_access/README.md @@ -16,7 +16,7 @@ Basic usage of this module is as follows: ``` module "test_psa" { source = "terraform-google-modules/sql-db/google//modules/private_service_access" - version = "~> 25.0" + version = "~> 25.1" project_id = var.project_id vpc_network = google_compute_network.default.name diff --git a/modules/private_service_access/metadata.yaml b/modules/private_service_access/metadata.yaml index b0d95002..0aeabffe 100644 --- a/modules/private_service_access/metadata.yaml +++ b/modules/private_service_access/metadata.yaml @@ -25,7 +25,7 @@ spec: repo: https://github.com/terraform-google-modules/terraform-google-sql-db.git sourceType: git dir: /modules/private_service_access - version: 25.0.2 + version: 25.1.0 actuationTool: flavor: Terraform version: ">= 0.13" diff --git a/modules/private_service_access/versions.tf b/modules/private_service_access/versions.tf index ac997c5a..93d230f8 100644 --- a/modules/private_service_access/versions.tf +++ b/modules/private_service_access/versions.tf @@ -32,11 +32,11 @@ terraform { } provider_meta "google" { - module_name = "blueprints/terraform/terraform-google-sql-db:private_service_access/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:private_service_access/v25.1.0" } provider_meta "google-beta" { - module_name = "blueprints/terraform/terraform-google-sql-db:private_service_access/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:private_service_access/v25.1.0" } } diff --git a/modules/safer_mysql/README.md b/modules/safer_mysql/README.md index 8922136d..c7ca530f 100644 --- a/modules/safer_mysql/README.md +++ b/modules/safer_mysql/README.md @@ -167,7 +167,7 @@ Functional examples are included in the [examples](../../examples/) directory. B ```hcl module "safer-mysql-db" { source = "terraform-google-modules/sql-db/google//modules/safer_mysql" - version = "~> 25.0" + version = "~> 25.1" name = var.db_name diff --git a/modules/safer_mysql/metadata.yaml b/modules/safer_mysql/metadata.yaml index 08fd3c41..78ec95d3 100644 --- a/modules/safer_mysql/metadata.yaml +++ b/modules/safer_mysql/metadata.yaml @@ -25,7 +25,7 @@ spec: repo: https://github.com/terraform-google-modules/terraform-google-sql-db.git sourceType: git dir: /modules/safer_mysql - version: 25.0.2 + version: 25.1.0 actuationTool: flavor: Terraform version: ">= 1.3" diff --git a/modules/safer_mysql/versions.tf b/modules/safer_mysql/versions.tf index f13c8257..c8881d62 100644 --- a/modules/safer_mysql/versions.tf +++ b/modules/safer_mysql/versions.tf @@ -25,7 +25,7 @@ terraform { } provider_meta "google" { - module_name = "blueprints/terraform/terraform-google-sql-db:safer_mysql/v25.0.2" + module_name = "blueprints/terraform/terraform-google-sql-db:safer_mysql/v25.1.0" } }