From 769654d72190c11bcd0afa12d6d0274c6351ac24 Mon Sep 17 00:00:00 2001
From: Pawel Karoluk
Date: Mon, 24 Mar 2025 17:47:05 +0100
Subject: [PATCH] fix editions and autoscaling nodes
---
main.tf | 29 ++++++++++++++++-------------
variables.tf | 15 +++++++--------
2 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/main.tf b/main.tf
index aeae319..bdecc6c 100644
--- a/main.tf
+++ b/main.tf
@@ -50,30 +50,31 @@ resource "google_spanner_instance" "instance_num_node" {
config = var.instance_config
display_name = var.instance_display_name
name = var.instance_name
- num_nodes = var.instance_size.num_nodes
+ num_nodes = var.enable_autoscaling ? null : var.instance_size.num_nodes
labels = var.instance_labels
dynamic "autoscaling_config" {
for_each = var.enable_autoscaling ? [1] : []
content {
autoscaling_limits {
- min_processing_units = var.min_processing_units
- max_processing_units = var.max_processing_units
- min_nodes = var.min_nodes
- max_nodes = var.max_nodes
+ min_nodes = var.min_nodes
+ max_nodes = var.max_nodes
}
autoscaling_targets {
high_priority_cpu_utilization_percent = var.high_priority_cpu_utilization_percent
storage_utilization_percent = var.storage_utilization_percent
}
- asymmetric_autoscaling_options {
- replica_selection {
- location = var.replica_location
- }
- overrides {
- autoscaling_limits {
- min_nodes = var.override_min_nodes
- max_nodes = var.override_max_nodes
+ dynamic "asymmetric_autoscaling_options" {
+ for_each = var.enable_asymmetric_autoscaling ? [1] : []
+ content {
+ replica_selection {
+ location = var.replica_location
+ }
+ overrides {
+ autoscaling_limits {
+ min_nodes = var.override_min_nodes
+ max_nodes = var.override_max_nodes
+ }
}
}
}
@@ -93,6 +94,8 @@ resource "google_spanner_instance" "instance_processing_units" {
name = var.instance_name
processing_units = var.instance_size.processing_units
labels = var.instance_labels
+ edition = var.edition
+ force_destroy = var.force_destroy
}
data "google_spanner_instance" "instance" {
diff --git a/variables.tf b/variables.tf
index 375b0af..c194db3 100644
--- a/variables.tf
+++ b/variables.tf
@@ -41,14 +41,7 @@ variable "instance_size" {
num_nodes = optional(number)
processing_units = optional(number)
})
- validation {
- condition = !(
- try(var.instance_size.num_nodes, null) == null
- &&
- try(var.instance_size.processing_units, null) == null
- )
- error_message = "Either num_nodes OR processing_units information is supported."
- }
+ default = null
}
variable "create_instance" {
@@ -63,6 +56,12 @@ variable "enable_autoscaling" {
default = false
}
+variable "enable_asymmetric_autoscaling" {
+ description = "Enable asymmetric autoscaling for the Spanner Instance"
+ type = bool
+ default = false
+}
+
variable "instance_iam" {
description = "The list of permissions on spanner instance"
type = list(string)