Skip to content

Commit b085bed

Browse files
Adds default PostgreSQL server configuration
Signed-off-by: PhanikumarThodupunoori <[email protected]>
1 parent 2ea5923 commit b085bed

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

docs/CONFIG-VARS.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,18 @@ Each server element, like `foo = {}`, can contain none, some, or all of the para
278278
- `edition` must be `"ENTERPRISE"`
279279
- `machine_type` must start with `"db-custom-"`
280280

281+
*NOTE*: The default = {} elements is always required when creating external databases. This is the systems default database server.
282+
283+
If you provide an empty block for default, the following default values will be used:
284+
terraform
285+
postgres_servers = {
286+
default = {
287+
server_version = "15"
288+
edition = "ENTERPRISE"
289+
machine_type = "db-custom-4-16384"
290+
}
291+
}
292+
281293
| Name | Description | Type | Default | Notes |
282294
| :--- | ---: | ---: | ---: | ---: |
283295
| machine_type| The machine type for the PostgreSQL server VMs" | string | "db-custom-4-16384" | Google Cloud Postgres supports only shared-core machine types such as db-f1-micro, and custom machine types such as db-custom-2-13312. Must match the PostgreSQL version requirements. |

variables.tf

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,13 @@ variable "postgres_server_defaults" {
390390
variable "postgres_servers" {
391391
description = "Map of PostgreSQL server objects"
392392
type = any
393-
default = null
393+
default = {
394+
default = {
395+
server_version = "15"
396+
edition = "ENTERPRISE"
397+
machine_type = "db-custom-4-16384"
398+
}
399+
}
394400

395401
# Checking for user provided "default" server
396402
validation {
@@ -414,9 +420,14 @@ variable "postgres_servers" {
414420
validation {
415421
condition = var.postgres_servers != null ? length(var.postgres_servers) != 0 ? alltrue([
416422
for k, v in var.postgres_servers : (
417-
v.server_version != null && (
418-
(tonumber(v.server_version) >= 16 && v.edition == "ENTERPRISE_PLUS" && can(regex("^db-perf-optimized-N-", v.machine_type))) ||
419-
(tonumber(v.server_version) < 16 && v.edition == "ENTERPRISE" && can(regex("^db-custom-", v.machine_type)))
423+
# If the object is empty, use default values
424+
length(keys(v)) == 0 ? true : (
425+
can(try(v.server_version, null)) &&
426+
can(try(v.edition, null)) &&
427+
can(try(v.machine_type, null)) && (
428+
(tonumber(try(v.server_version, "15")) >= 16 && try(v.edition, "ENTERPRISE") == "ENTERPRISE_PLUS" && can(regex("^db-perf-optimized-N-", try(v.machine_type, "")))) ||
429+
(tonumber(try(v.server_version, "15")) < 16 && try(v.edition, "ENTERPRISE") == "ENTERPRISE" && can(regex("^db-custom-", try(v.machine_type, ""))))
430+
)
420431
)
421432
)
422433
]) : false : true

0 commit comments

Comments
 (0)