regional MySQL DBs - automatic backup conf
This commit is contained in:
parent
40b3aa3f90
commit
d6c6ae943e
|
@ -18,10 +18,11 @@ locals {
|
||||||
prefix = var.prefix == null ? "" : "${var.prefix}-"
|
prefix = var.prefix == null ? "" : "${var.prefix}-"
|
||||||
is_mysql = can(regex("^MYSQL", var.database_version))
|
is_mysql = can(regex("^MYSQL", var.database_version))
|
||||||
has_replicas = try(length(var.replicas) > 0, false)
|
has_replicas = try(length(var.replicas) > 0, false)
|
||||||
|
is_regional = var.availability_type == "REGIONAL" ? true : false
|
||||||
|
|
||||||
// Enable backup if the user asks for it or if the user is deploying
|
// Enable backup if the user asks for it or if the user is deploying
|
||||||
// MySQL with replicas
|
// MySQL in HA configuration (regional or with specified replicas)
|
||||||
enable_backup = var.backup_configuration.enabled || (local.is_mysql && local.has_replicas)
|
enable_backup = var.backup_configuration.enabled || (local.is_mysql && local.has_replicas) || (local.is_mysql && local.is_regional)
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
for user, password in coalesce(var.users, {}) :
|
for user, password in coalesce(var.users, {}) :
|
||||||
|
@ -76,11 +77,11 @@ resource "google_sql_database_instance" "primary" {
|
||||||
content {
|
content {
|
||||||
enabled = true
|
enabled = true
|
||||||
|
|
||||||
// enable binary log if the user asks for it or we have replicas,
|
// enable binary log if the user asks for it or we have replicas (default in regional),
|
||||||
// but only for MySQL
|
// but only for MySQL
|
||||||
binary_log_enabled = (
|
binary_log_enabled = (
|
||||||
local.is_mysql
|
local.is_mysql
|
||||||
? var.backup_configuration.binary_log_enabled || local.has_replicas
|
? var.backup_configuration.binary_log_enabled || local.has_replicas || local.is_regional
|
||||||
: null
|
: null
|
||||||
)
|
)
|
||||||
start_time = var.backup_configuration.start_time
|
start_time = var.backup_configuration.start_time
|
||||||
|
|
|
@ -90,6 +90,17 @@ def test_mysql_replicas_enables_backup(plan_runner):
|
||||||
assert backup_config['binary_log_enabled']
|
assert backup_config['binary_log_enabled']
|
||||||
|
|
||||||
|
|
||||||
|
def test_mysql_binary_log_for_regional(plan_runner):
|
||||||
|
"Test that the binary log will be enabled for regional MySQL DBs."
|
||||||
|
|
||||||
|
_, resources = plan_runner(database_version="MYSQL_8_0", availability_type="REGIONAL")
|
||||||
|
assert len(resources) == 1
|
||||||
|
primary = [r for r in resources if r['name'] == 'primary'][0]
|
||||||
|
backup_config = primary['values']['settings'][0]['backup_configuration'][0]
|
||||||
|
assert backup_config['enabled']
|
||||||
|
assert backup_config['binary_log_enabled']
|
||||||
|
|
||||||
|
|
||||||
def test_users(plan_runner):
|
def test_users(plan_runner):
|
||||||
"Test user creation."
|
"Test user creation."
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue