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/spanner_backup.yml b/modules/schedule_spanner_backup/spanner_backup.yml index 8d70116..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} + 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 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" } }