The 12.0.0 release of SQL DB is a backward incompatible release. This incompatibility affects configuration of read replicas for mysql
, postgresql
and safer_mysql
submodules.
Prior to the 12.0.0 release, all read replicas were created using the default availability type set to ZONAL
. The addition of availability_type
allows explicit setting of availability type for each read replica.
module "pg" {
source = "GoogleCloudPlatform/sql-db/google//modules/postgresql"
version = "~> 11.0"
project_id = var.project_id
region = "europe-west1"
zone = "europe-west1-d"
name = "test"
random_instance_name = true
availability_type = "ZONAL"
database_version = "POSTGRES_14"
disk_type = "PD_HDD"
disk_size = 10
disk_autoresize = true
create_timeout = "30m"
read_replicas = [
{
name = "0"
zone = "europe-west1-d"
tier = "db-f1-micro"
disk_type = "PD_HDD"
disk_size = 10
disk_autoresize = true
disk_autoresize_limit = 0
encryption_key_name = null
database_flags = []
user_labels = {}
ip_configuration = {
allocated_ip_range = null
authorized_networks = []
ipv4_enabled = true
private_network = null
require_ssl = false
}
},
]
}
With the 12.0.0 release, the availability_type
string variable is presented which allows users to set the availability type of their read replicas as ZONAL
or REGIONAL
.
module "pg" {
source = "GoogleCloudPlatform/sql-db/google//modules/postgresql"
- version = "~> 11.0"
+ version = "~> 12.0"
project_id = var.project_id
region = "europe-west1"
zone = "europe-west1-d"
name = "test"
random_instance_name = true
availability_type = "ZONAL"
database_version = "POSTGRES_14"
disk_type = "PD_HDD"
disk_size = 10
disk_autoresize = true
create_timeout = "30m"
read_replicas = [
{
name = "0"
zone = "europe-west1-d"
tier = "db-f1-micro"
disk_type = "PD_HDD"
disk_size = 10
disk_autoresize = true
+ availability_type = "ZONAL"
disk_autoresize_limit = 0
encryption_key_name = null
database_flags = []
user_labels = {}
ip_configuration = {
allocated_ip_range = null
authorized_networks = []
ipv4_enabled = true
private_network = null
require_ssl = false
}
},
]
}
Prior to the 12.0.0 mysql
module release, additional users were created using the default_user
's password. In order to keep the password unchanged for additional users for release 12.0.0 and up, additional_user
's passwords need to be set explicitly using the default_user
's generated password.
module "mysql" {
source = "GoogleCloudPlatform/sql-db/google//modules/mysql"
- version = "~> 11.0"
+ version = "~> 12.0"
project_id = var.project_id
additional_users = [{
name = "admin"
+ password = module.mysql.generated_user_password
}]
}