From 9d03290e41bcb128e5f7c65595d7845416e5ed6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Kr=C3=B3likowski?=
Date: Mon, 15 Jan 2024 19:50:22 +0100
Subject: [PATCH 1/5] Backup: make backupID unique
---
modules/schedule_spanner_backup/spanner_backup.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/schedule_spanner_backup/spanner_backup.yml b/modules/schedule_spanner_backup/spanner_backup.yml
index 8d70116..745f1b3 100644
--- a/modules/schedule_spanner_backup/spanner_backup.yml
+++ b/modules/schedule_spanner_backup/spanner_backup.yml
@@ -28,7 +28,7 @@ main:
call: create_backup
args:
parent: ${eachValue.parent}
- backupId: ${eachValue.backupId}
+ backupId: ${eachValue.backupId+time.format(sys.now())}
database: ${eachValue.database}
expireTime: ${time.format(sys.now() + eachValue.expireTime)}
result: backup_result
From 207c627585c016a686c07076dcb3c38c1a3eab55 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Kr=C3=B3likowski?=
Date: Mon, 15 Jan 2024 20:13:06 +0100
Subject: [PATCH 2/5] Backup: backupID format timestamp sufix
---
modules/schedule_spanner_backup/spanner_backup.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/modules/schedule_spanner_backup/spanner_backup.yml b/modules/schedule_spanner_backup/spanner_backup.yml
index 745f1b3..4e4b433 100644
--- a/modules/schedule_spanner_backup/spanner_backup.yml
+++ b/modules/schedule_spanner_backup/spanner_backup.yml
@@ -29,6 +29,7 @@ main:
args:
parent: ${eachValue.parent}
backupId: ${eachValue.backupId+time.format(sys.now())}
+ backupId: ${eachValue.backupId+"-"+text.substring(time.format(sys.now()), 2, 10)}
database: ${eachValue.database}
expireTime: ${time.format(sys.now() + eachValue.expireTime)}
result: backup_result
From cb9f2f2f56f5a008d0a046cd4f4d67dae88a17e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Kr=C3=B3likowski?=
Date: Mon, 15 Jan 2024 20:14:06 +0100
Subject: [PATCH 3/5] fix typo
---
modules/schedule_spanner_backup/spanner_backup.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/modules/schedule_spanner_backup/spanner_backup.yml b/modules/schedule_spanner_backup/spanner_backup.yml
index 4e4b433..033be71 100644
--- a/modules/schedule_spanner_backup/spanner_backup.yml
+++ b/modules/schedule_spanner_backup/spanner_backup.yml
@@ -28,7 +28,6 @@ main:
call: create_backup
args:
parent: ${eachValue.parent}
- backupId: ${eachValue.backupId+time.format(sys.now())}
backupId: ${eachValue.backupId+"-"+text.substring(time.format(sys.now()), 2, 10)}
database: ${eachValue.database}
expireTime: ${time.format(sys.now() + eachValue.expireTime)}
From 54ee934063a016a63d22a89dabc3c67a5039f6f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Kr=C3=B3likowski?=
Date: Mon, 15 Jan 2024 20:34:33 +0100
Subject: [PATCH 4/5] backup name format without hypens
---
modules/schedule_spanner_backup/spanner_backup.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/schedule_spanner_backup/spanner_backup.yml b/modules/schedule_spanner_backup/spanner_backup.yml
index 033be71..5dc79c9 100644
--- a/modules/schedule_spanner_backup/spanner_backup.yml
+++ b/modules/schedule_spanner_backup/spanner_backup.yml
@@ -28,7 +28,7 @@ main:
call: create_backup
args:
parent: ${eachValue.parent}
- backupId: ${eachValue.backupId+"-"+text.substring(time.format(sys.now()), 2, 10)}
+ backupId: ${eachValue.backupId+"-"+ text.replace_all(text.substring(time.format(sys.now()), 2, 10), "-","")}
database: ${eachValue.database}
expireTime: ${time.format(sys.now() + eachValue.expireTime)}
result: backup_result
From c02ccac823dc093e5b168c2dbc9cef935cfb581a Mon Sep 17 00:00:00 2001
From: Pawel Karoluk
Date: Wed, 23 Oct 2024 01:45:48 +0200
Subject: [PATCH 5/5] add editions support and bump provider version
---
main.tf | 2 ++
modules/schedule_spanner_backup/main.tf | 15 +++++++--------
modules/schedule_spanner_backup/versions.tf | 4 ++--
variables.tf | 10 ++++++++++
versions.tf | 4 ++--
5 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/main.tf b/main.tf
index 2516579..d77da87 100644
--- a/main.tf
+++ b/main.tf
@@ -50,6 +50,7 @@ resource "google_spanner_instance" "instance_num_node" {
config = var.instance_config
display_name = var.instance_display_name
name = var.instance_name
+ edition = var.edition
num_nodes = var.instance_size.num_nodes
labels = var.instance_labels
}
@@ -60,6 +61,7 @@ resource "google_spanner_instance" "instance_processing_units" {
config = var.instance_config
display_name = var.instance_display_name
name = var.instance_name
+ edition = var.edition
processing_units = var.instance_size.processing_units
labels = var.instance_labels
}
diff --git a/modules/schedule_spanner_backup/main.tf b/modules/schedule_spanner_backup/main.tf
index 43a84ea..18aa437 100644
--- a/modules/schedule_spanner_backup/main.tf
+++ b/modules/schedule_spanner_backup/main.tf
@@ -15,18 +15,17 @@
*/
module "service_account_scheduler" {
- source = "terraform-google-modules/service-accounts/google"
- version = "~> 4.1.1"
- project_id = var.project_id
- prefix = "spanner-backup-scheduler"
- names = ["1"]
-
+ source = "terraform-google-modules/service-accounts/google"
+ version = "~> 4.4.0"
+ project_id = var.project_id
+ prefix = "spanner-backup-scheduler"
+ names = ["1"]
project_roles = ["${var.project_id}=>roles/workflows.invoker"]
}
module "service_account_workflow" {
source = "terraform-google-modules/service-accounts/google"
- version = "~> 4.1.1"
+ version = "~> 4.4.0"
project_id = var.project_id
prefix = "spanner-backup-workflow"
names = ["1"]
@@ -34,7 +33,7 @@ module "service_account_workflow" {
}
module "workflow" {
- source = "github.com/GoogleCloudPlatform/terraform-google-cloud-workflows?ref=v0.1.1"
+ source = "github.com/livechat/terraform-google-cloud-workflows"
project_id = var.project_id
workflow_name = "spanner-backup-workflow"
region = var.backup_schedule_region
diff --git a/modules/schedule_spanner_backup/versions.tf b/modules/schedule_spanner_backup/versions.tf
index 0bc74dc..33f3108 100644
--- a/modules/schedule_spanner_backup/versions.tf
+++ b/modules/schedule_spanner_backup/versions.tf
@@ -15,11 +15,11 @@
*/
terraform {
- required_version = ">= 0.13"
+ required_version = ">= 1.5.0"
required_providers {
google = {
source = "hashicorp/google"
- version = ">= 3.53, < 7"
+ version = ">= 6.8.0, < 7"
}
}
diff --git a/variables.tf b/variables.tf
index f4c6906..583fa7e 100644
--- a/variables.tf
+++ b/variables.tf
@@ -52,6 +52,16 @@ variable "instance_size" {
}
}
+variable "edition" {
+ description = "The edition selected for this instance. Different editions provide different capabilities at different price points."
+ type = string
+ default = "STANDARD"
+ validation {
+ condition = can(regex("^(EDITION_UNSPECIFIED|STANDARD|ENTERPRISE|ENTERPRISE_PLUS)$", var.edition))
+ error_message = "The edition must be one of the following: STANDARD, ENTERPRISE, ENTERPRISE_PLUS or EDITION_UNSPECIFIED"
+ }
+}
+
variable "create_instance" {
description = "Switch to use create OR use existing Spanner Instance "
type = bool
diff --git a/versions.tf b/versions.tf
index 51ed5dd..e0eb2a3 100644
--- a/versions.tf
+++ b/versions.tf
@@ -15,11 +15,11 @@
*/
terraform {
- required_version = ">= 0.13"
+ required_version = ">= 1.5.0"
required_providers {
google = {
source = "hashicorp/google"
- version = ">= 3.53, < 7"
+ version = ">= 6.8, < 7"
}
}