2021-10-07 09:20:07 -07:00
/ * *
2022-01-01 06:52:31 -08:00
* Copyright 2022 Google LLC
2021-10-07 09:20:07 -07:00
*
* Licensed under the Apache License , Version 2 . 0 ( the " License " ) ;
* you may not use this file except in compliance with the License .
* You may obtain a copy of the License at
*
* http : //www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an " AS IS " BASIS ,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
* /
2022-12-19 23:08:00 -08:00
variable " allocated_ip_ranges " {
description = " (Optional)The name of the allocated ip range for the private ip CloudSQL instance. For example: \ " google - managed - services - default \ " . If set, the instance ip will be created in the allocated range. The range name must comply with RFC 1035. Specifically, the name must be 1-63 characters long and match the regular expression a-z?. "
type = object ( {
primary = optional ( string )
replica = optional ( string )
} )
default = { }
nullable = false
}
2021-10-07 09:20:07 -07:00
variable " authorized_networks " {
description = " Map of NAME=>CIDR_RANGE to allow to connect to the database(s). "
type = map ( string )
default = null
}
variable " availability_type " {
2022-01-31 01:45:34 -08:00
description = " Availability type for the primary replica. Either `ZONAL` or `REGIONAL`. "
2021-10-07 09:20:07 -07:00
type = string
default = " ZONAL "
}
variable " backup_configuration " {
2022-01-31 01:45:34 -08:00
description = " Backup settings for primary instance. Will be automatically enabled if using MySQL with one or more replicas. "
2023-02-08 04:26:21 -08:00
nullable = false
2021-10-07 09:20:07 -07:00
type = object ( {
2023-02-08 04:26:21 -08:00
enabled = optional ( bool , false )
binary_log_enabled = optional ( bool , false )
start_time = optional ( string , " 23:00 " )
2023-02-07 04:58:55 -08:00
location = optional ( string )
2023-02-08 04:26:21 -08:00
log_retention_days = optional ( number , 7 )
2023-02-07 04:58:55 -08:00
point_in_time_recovery_enabled = optional ( bool )
2023-02-08 04:26:21 -08:00
retention_count = optional ( number , 7 )
2021-10-07 09:20:07 -07:00
} )
default = {
2023-02-07 04:52:44 -08:00
enabled = false
binary_log_enabled = false
start_time = " 23:00 "
location = null
log_retention_days = 7
point_in_time_recovery_enabled = null
retention_count = 7
2021-10-18 05:33:19 -07:00
}
}
2021-10-07 09:20:07 -07:00
variable " database_version " {
description = " Database type and version to create. "
type = string
}
variable " databases " {
description = " Databases to create once the primary instance is created. "
type = list ( string )
default = null
}
2021-10-07 09:25:49 -07:00
variable " deletion_protection " {
2021-10-08 09:26:04 -07:00
description = " Allow terraform to delete instances. "
type = bool
default = false
2021-10-07 09:25:49 -07:00
}
2021-10-07 09:20:07 -07:00
variable " disk_size " {
description = " Disk size in GB. Set to null to enable autoresize. "
type = number
default = null
}
variable " disk_type " {
description = " The type of data disk: `PD_SSD` or `PD_HDD`. "
type = string
default = " PD_SSD "
}
2022-04-12 10:01:34 -07:00
variable " encryption_key_name " {
2022-04-12 15:22:54 -07:00
description = " The full path to the encryption key used for the CMEK disk encryption of the primary instance. "
2022-04-12 10:01:34 -07:00
type = string
default = null
}
2021-10-07 09:20:07 -07:00
variable " flags " {
description = " Map FLAG_NAME=>VALUE for database-specific tuning. "
type = map ( string )
default = null
}
2022-11-18 08:48:16 -08:00
variable " ipv4_enabled " {
description = " Add a public IP address to database instance. "
type = bool
default = false
}
2021-10-07 09:20:07 -07:00
variable " labels " {
description = " Labels to be attached to all instances. "
type = map ( string )
default = null
}
variable " name " {
2022-04-12 15:22:54 -07:00
description = " Name of primary instance. "
2021-10-07 09:20:07 -07:00
type = string
}
variable " network " {
description = " VPC self link where the instances will be deployed. Private Service Networking must be enabled and configured in this VPC. "
type = string
}
2022-12-12 08:14:44 -08:00
variable " postgres_client_certificates " {
description = " Map of cert keys connect to the application(s) using public IP. "
type = list ( string )
default = null
}
2021-10-07 09:20:07 -07:00
variable " prefix " {
2022-11-10 07:05:53 -08:00
description = " Optional prefix used to generate instance names. "
2021-10-07 09:20:07 -07:00
type = string
default = null
2022-11-10 07:05:53 -08:00
validation {
2022-11-10 07:11:38 -08:00
condition = var . prefix ! = " "
2022-11-11 03:56:47 -08:00
error_message = " Prefix cannot be empty, please use null instead. "
2022-11-10 07:05:53 -08:00
}
2021-10-07 09:20:07 -07:00
}
variable " project_id " {
description = " The ID of the project where this instances will be created. "
type = string
}
variable " region " {
2022-04-12 15:22:54 -07:00
description = " Region of the primary instance. "
2021-10-07 09:20:07 -07:00
type = string
}
variable " replicas " {
2022-04-12 10:01:34 -07:00
description = " Map of NAME=> {REGION, KMS_KEY} for additional read replicas. Set to null to disable replica creation. "
type = map ( object ( {
region = string
encryption_key_name = string
} ) )
default = { }
2021-10-07 09:20:07 -07:00
}
2022-09-29 03:57:19 -07:00
variable " root_password " {
2022-11-24 09:56:01 -08:00
description = " Root password of the Cloud SQL instance. Required for MS SQL Server. "
2022-09-29 03:57:19 -07:00
type = string
default = null
}
2021-10-08 09:26:04 -07:00
variable " tier " {
description = " The machine type to use for the instances. "
type = string
}
2021-10-07 09:20:07 -07:00
variable " users " {
2022-01-31 01:45:34 -08:00
description = " Map of users to create in the primary instance (and replicated to other replicas) in the format USER=>PASSWORD. For MySQL, anything afterr the first `@` (if persent) will be used as the user's host. Set PASSWORD to null if you want to get an autogenerated password. "
2021-10-07 09:20:07 -07:00
type = map ( string )
default = null
}