Skip to content

Latest commit

 

History

History
113 lines (97 loc) · 3.48 KB

upgrading_to_sql_db_12.0.0.md

File metadata and controls

113 lines (97 loc) · 3.48 KB

Upgrading to SQL DB 12.0.0

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.

Migration Instructions

Add support for setting availability_type

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
  }]
}